By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: شرح استخدام Cached Network Image في Flutter
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Packages > شرح استخدام Cached Network Image في Flutter
Packages

شرح استخدام Cached Network Image في Flutter

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 7 دقيقة للقراءة 1398 مشاهدات 3
شارك
شرح استخدام Cached Network Image في Flutter
شرح استخدام Cached Network Image في Flutter
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

تُعد حزمة cached_network_image واحدة من الحزم المهمة في تطوير تطبيقات Flutter، حيث تتيح للمطورين تحميل الصور من الإنترنت وتخزينها مؤقتاً لعرضها لاحقاً بدون الحاجة إلى إعادة تحميلها. هذا المقال سيوضح كيفية استخدام هذه الحزمة مع شرح للأكواد ونواتجها.

المحتويات
تثبيت حزمة Cached Network Imageاستخدام الحزمة في التطبيقاستيراد الحزمةعرض صورة من الانترنتشرح الكودناتج الكودالخصائص الأساسية في Cached Network ImageimageUrlhttpHeadersimageBuilderplaceholderprogressIndicatorBuildererrorWidgetخصائص التحريك والتأثيرات في Cached Network ImagefadeOutDurationfadeOutCurvefadeInDurationfadeInCurveخصائص الحجم والمظهر في Cached Network Imagewidth و heightfitalignmentrepeatmatchTextDirectionخصائص التخزين المؤقت في Cached Network ImagecacheManageruseOldImageOnUrlChangecacheKeymaxWidthDiskCache و maxHeightDiskCacheخصائص إضافية في Cached Network Imagecolor و colorBlendModefilterQualityplaceholderFadeInDurationerrorListenerimageRenderMethodForWeb

تثبيت حزمة Cached Network Image

لتثبيت الحزمة، يجب عليك تعديل ملف pubspec.yaml الخاص بمشروعك. أضف السطر التالي ضمن قسم dependencies:

dependencies:
  flutter:
    sdk: flutter
  cached_network_image: ^3.3.1

بعد ذلك، قم بتشغيل الأمر التالي في الـ terminal لتثبيت الحزمة:

flutter pub get

“اقرأ أيضاً: شرح استخدام introduction_screen في Flutter“


استخدام الحزمة في التطبيق

استيراد الحزمة

بعد تثبيت الحزمة، يمكنك استيرادها في ملف Dart الخاص بك:

import 'package:cached_network_image/cached_network_image.dart';

عرض صورة من الانترنت

لاستخدام الحزمة لعرض صورة من الإنترنت، يمكنك استخدام CachedNetworkImage بدلاً من Image.network. المثال التالي يوضح كيفية استخدام CachedNetworkImage:

import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Cached Network Image Example'),
        ),
        body: Center(
          child: CachedNetworkImage(
            imageUrl: "https://via.placeholder.com/150",
            placeholder: (context, url) => CircularProgressIndicator(),
            errorWidget: (context, url, error) => Icon(Icons.error),
          ),
        ),
      ),
    );
  }
}

شرح الكود

  • استيراد الحزمة: تم استيراد حزمة cached_network_image لاستخدام مكوناتها.
  • CachedNetworkImage: يتم استخدام هذه الويدجت لعرض الصورة.
  • imageUrl: يُستخدم لتحديد رابط الصورة التي سيتم تحميلها.
  • placeholder: يُعرض أثناء تحميل الصورة.
  • errorWidget: يُعرض في حال فشل تحميل الصورة.

ناتج الكود

عند تشغيل التطبيق، ستظهر صورة من الرابط المحدد، وفي حال تحميل الصورة سيتم عرض مؤشر التحميل، وإذا حدث خطأ سيتم عرض أيقونة الخطأ.

“اقرأ أيضاً: شرح استخدام Font Awesome في Flutter“


الخصائص الأساسية في Cached Network Image

imageUrl

  • الوصف: رابط الصورة التي سيتم تحميلها.
  • نوع البيانات: String
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
  )

httpHeaders

  • الوصف: رؤوس HTTP المخصصة التي يمكن إضافتها إلى طلب الصورة.
  • نوع البيانات: Map<String, String>?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    httpHeaders: {"Authorization": "Bearer your_token_here"},
  )

imageBuilder

  • الوصف: دالة تبني الويدجت الخاص بالصورة بعد تحميلها.
  • نوع البيانات: Widget Function(BuildContext, ImageProvider<Object>)?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    imageBuilder: (context, imageProvider) => Container(
      decoration: BoxDecoration(
        image: DecorationImage(
          image: imageProvider,
          fit: BoxFit.cover,
        ),
      ),
    ),
  )

placeholder

  • الوصف: ويدجت يُعرض أثناء تحميل الصورة من الانترنت.
  • نوع البيانات: Widget Function(BuildContext, String)?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    placeholder: (context, url) => CircularProgressIndicator(),
  )

progressIndicatorBuilder

  • الوصف: ويدجت يُعرض أثناء تحميل الصورة مع مؤشر التقدم.
  • نوع البيانات: Widget Function(BuildContext, String, DownloadProgress)?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    progressIndicatorBuilder: (context, url, downloadProgress) =>
        CircularProgressIndicator(value: downloadProgress.progress),
  )

errorWidget

  • الوصف: ويدجت يُعرض في حالة حدوث خطأ أثناء تحميل الصورة.
  • نوع البيانات: Widget Function(BuildContext, String, Object)?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    errorWidget: (context, url, error) => Icon(Icons.error),
  )

“اقرأ أيضاً: شرح استخدام ويدجت AnimatedList في فلاتر“


خصائص التحريك والتأثيرات في Cached Network Image

fadeOutDuration

  • الوصف: مدة تأثير التلاشي عند إزالة الصورة.
  • نوع البيانات: Duration?
  • القيمة الافتراضية: const Duration(milliseconds: 1000)
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    fadeOutDuration: Duration(milliseconds: 500),
  )

fadeOutCurve

  • الوصف: منحنى التلاشي عند إزالة الصورة.
  • نوع البيانات: Curve
  • القيمة الافتراضية: Curves.easeOut
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    fadeOutCurve: Curves.easeInOut,
  )

fadeInDuration

  • الوصف: مدة تأثير التلاشي عند تحميل الصورة.
  • نوع البيانات: Duration?
  • القيمة الافتراضية: const Duration(milliseconds: 500)
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    fadeInDuration: Duration(milliseconds: 700),
  )

fadeInCurve

  • الوصف: منحنى التلاشي عند تحميل الصورة.
  • نوع البيانات: Curve
  • القيمة الافتراضية: Curves.easeIn
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    fadeInCurve: Curves.easeInOut,
  )

“اقرأ أيضاً: شرح أنواع الدوال functions في لغة دارت (Dart)“


خصائص الحجم والمظهر في Cached Network Image

width و height

  • الوصف: تحديد عرض وارتفاع الصورة.
  • نوع البيانات: double?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    width: 100,
    height: 100,
  )

fit

  • الوصف: كيفية ملاءمة الصورة داخل الويدجت.
  • نوع البيانات: BoxFit?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    fit: BoxFit.cover,
  )

alignment

  • الوصف: محاذاة الصورة داخل الويدجت.
  • نوع البيانات: Alignment
  • القيمة الافتراضية: Alignment.center
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    alignment: Alignment.topLeft,
  )

repeat

  • الوصف: تحديد كيفية تكرار الصورة إذا كانت أصغر من الحاوية.
  • نوع البيانات: ImageRepeat
  • القيمة الافتراضية: ImageRepeat.noRepeat
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    repeat: ImageRepeat.repeat,
  )

matchTextDirection

  • الوصف: يحدد ما إذا كان يجب محاذاة الصورة بناءً على اتجاه النص.
  • نوع البيانات: bool
  • القيمة الافتراضية: false
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    matchTextDirection: true,
  )

خصائص التخزين المؤقت في Cached Network Image

cacheManager

  • الوصف: إدارة مخصصة للتخزين المؤقت.
  • نوع البيانات: BaseCacheManager?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    cacheManager: CustomCacheManager(),
  )

useOldImageOnUrlChange

  • الوصف: يحدد ما إذا كان يجب استخدام الصورة القديمة عند تغيير الرابط.
  • نوع البيانات: bool
  • القيمة الافتراضية: false
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    useOldImageOnUrlChange: true,
  )

cacheKey

  • الوصف: مفتاح مخصص للصورة في التخزين المؤقت.
  • نوع البيانات: String?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    cacheKey: "customKey",
  )

maxWidthDiskCache و maxHeightDiskCache

  • الوصف: تحديد أقصى عرض وارتفاع للصورة في التخزين المؤقت.
  • نوع البيانات: int?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    maxWidthDiskCache: 200,
    maxHeightDiskCache: 200,
  )

خصائص إضافية في Cached Network Image

color و colorBlendMode

  • الوصف: لتلوين الصورة وتحديد وضع المزج.
  • نوع البيانات: Color? و BlendMode?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    color: Colors.red,
    colorBlendMode: BlendMode.colorBurn,
  )

filterQuality

  • الوصف: جودة الفلترة عند عرض الصورة.
  • نوع البيانات: FilterQuality
  • القيمة الافتراضية: FilterQuality.low
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    filterQuality: FilterQuality.high,
  )

placeholderFadeInDuration

  • الوصف: مدة تأثير التلاشي عند عرض الصورة.
  • نوع البيانات: Duration?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    placeholderFadeInDuration: Duration(milliseconds: 300),
  )

errorListener

  • الوصف: دالة لاستقبال الأخطاء أثناء تحميل الصورة.
  • نوع البيانات: void Function(Object)?
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    errorListener: (error) {
      print("Error loading image: $error");
    },
  )

imageRenderMethodForWeb

  • الوصف: تحديد طريقة عرض الصورة للويب.
  • نوع البيانات: ImageRenderMethodForWeb
  • القيمة الافتراضية: ImageRenderMethodForWeb.HtmlImage
  • مثال:
  CachedNetworkImage(
    imageUrl: "https://via.placeholder.com/150",
    imageRenderMethodForWeb: ImageRenderMethodForWeb.HttpGet,
  )

باستخدام هذه الخصائص المختلفة، يمكنك تخصيص تجربة تحميل وعرض الصور في تطبيقك بطرق عديدة، مما يوفر أداءً أفضل وتجربة مستخدم أكثر سلاسة ومرونة.

“اقرأ أيضاً: شرح جملة الشرط If في لغة دارت“


حزمة cached_network_image تُعد أداة قوية وفعالة لتحميل وعرض الصور من الإنترنت في تطبيقات Flutter مع ميزات التخزين المؤقت. من خلال استخدام هذه الحزمة، يمكنك تحسين أداء تطبيقك وتقليل استهلاك البيانات بشكل كبير.

لا تتردد في استكشاف المزيد من الميزات والخيارات المتاحة في الوثائق الرسمية للحزمة لمزيد من التحكم والمرونة في تطبيقاتك.

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح استخدام حزمة GDPR Admob في Flutter
Packages

شرح استخدام حزمة GDPR Admob في فلاتر 2024

10 1
شرح استخدام حزمة Permission Handler في Flutter
Packages

شرح استخدام حزمة Permission Handler في Flutter

9 1
شرح استخدام حزمة QuickAlert في Flutter
Packages

شرح استخدام حزمة QuickAlert في Flutter

6
شرح استخدام حزمة Device Preview في Flutter
Packages

شرح استخدام حزمة Device Preview في Flutter

4
شرح استخدام flutter_launcher_icons في Flutter
Packages

شرح استخدام flutter_launcher_icons في Flutter

4
شرح استخدام flutter_native_splash في Flutter
Packages

شرح استخدام flutter_native_splash في Flutter

4
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟