شارك المقالة

حفظ مكان الscroll الخاص بالمستخدم في تطبيقك دون الرجوع للاعلى


حفظ مكان الscroll الخاص بالمستخدم في تطبيقك دون الرجوع للاعلى

في هذا المقال سوف نتعرف على كيفية حفظ المكان الذي قام المستخدم بالتصفح فيه وذلك يكون عن طريق استخدام SingleChildScrollView حيث في درس سابق شرحنا كيف تنتقل الى اخر عنصر قمت بتصفحه باستخدام listView ولكن عند استخدامك لل SingleChildScrollView يكون الامر ابسط وهيا بنفس الطريقة عن طريق ال key وعند فتح التطبيق يتم التعرف على ال key وايضا يحفظ اخر نقطة تم البحث فيها ويمكنك من المفتاح الرجوع الى اخر كنت فيه بكل سهوله .


يمكنك إنشاء تطبيقات عبر الأنظمة الأساسية باستخدام Flutter التي تعمل على iOS و Android وسطح المكتب ومتصفحات الويب والمزيد من الأنظمة الأساسية. باستخدام Flutter ، ما عليك سوى الاحتفاظ بقاعدة شفرة عامة واحدة بدلاً من الحاجة إلى إنشاء تطبيقات أصلية منفصلة لكل نظام أساسي. تم إنشاء Flutter وصيانته بواسطة Google وهو مفتوح المصدر.


How to save position user in Scrolling with Flutter project

في هذا الجزء لدينا DefaultTabController وهو نفس فكرة عمل SingleChildScrollView  تماما فيمكنك اعطاء key مخصص له ويعمل عليه حتى يحفظ اخر مكان قمت بالانتقال اليه في هذه الصفحة وبمجرد رجوعك لهذه الصفحة يتم ارجاع المكان الذي قمت بالانتقال اليه , وبهذا تكون قد فعلت امكانية حفظ التصفح في تطبيقك بكل سهوله وبدون اي مشاكل .


How to save position user in Scrolling with Flutter project

ui.dart


Scaffold(
      body: DefaultTabController(
        initialIndex: 1,
        length: 3,
        child: Scaffold(
          appBar: AppBar(
            title: const Text('TabBar Widget'),
            bottom: const TabBar(
              tabs: <Widget>[
                Tab(
                  icon: Icon(Icons.cloud_outlined),
                ),
                Tab(
                  icon: Icon(Icons.beach_access_sharp),
                ),
                Tab(
                  icon: Icon(Icons.brightness_5_sharp),
                ),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              ListView.builder(
                key: PageStorageKey<String>('listView'),
                itemCount: 50,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text('Item $index'),
                    onTap: () {},
                  );
                },
              ),
              ListView.builder(
                key: PageStorageKey<String>('listView2'),
                itemCount: 50,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text('Item $index'),
                    onTap: () {},
                  );
                },
              ),
              SingleChildScrollView(
                key: PageStorageKey<String>('listView3'),
                child: Column(
                  children: [
                    for (var i = 0; i < 50; i++)
                      Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: Container(
                          height: 100,
                          width: double.infinity,
                          decoration: BoxDecoration(
                            color: Colors.blue,
                            borderRadius: BorderRadius.circular(10),
                          ),
                          child: Center(child: Text('Item $i')),
                        ),
                      ),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    )
    


شاهد أيضًا
مقالات ذات صلة
شرح Single Responsibility Principle في مبادئ ال Solid لكتابة كود منظم

شرح Single Responsibility Principle في مبادئ ال Solid لكتابة كود منظم ربما تكون قد سمعت…

تنفيذ انميشن لحذف منتج او ازالة عنصر بشكل مميز Flutter

تنفيذ انميشن لحذف منتج او ازالة عنصر بشكل مميز Flutterيمكننا تنفيذ animation لحذف منتج أو…

كيفية اظهار واخفاء كلمة المرور في فلاتر بسهوله | Show and hide Password in Flutter

  كيفية اظهار واخفاء كلمة المرور في فلاتر بسهوله | Show and hide Password in…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع