ویجت SliverAppBar

تعداد بازدید ها : 1,386 بازدید
 ویجت SliverAppBar

ویجت SliverAppBar جایگزین خصوصیت AppBar ویجت Scaffold می باشد و زمانی که شما از ویجت NestedScrollView جهت پیاده سازی پیمایش تودرتو استفاده کرده است ، کاربرد دارد . در واقع توسط این ویجت است که ویجت NestedScrollView می تواند نسبت به مخفی سازی AppBar در پیمایش های عمودی اقدام نماید .

قطعه کد زیر نمونه ای از پیاده سازی این ویجت را نمایش می دهد :

Scaffold(
   body: NestedScrollView(
       headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
         return <Widget>[
           new SliverAppBar(
             // حذف فاصله اضافی بالا
             primary: false,
             // ثابت (قلاب) کردن اپ بار
             pinned: true,
             // مخفی (شناور) کردن اپ بار و ثابت (قلاب) کردن تب بار
             floating: true,
             title: Text('واتساپ'),
             // سایه ی زیر اپ بار
             elevation: 5,
             bottom: TabBar(
               controller: tabController,
               indicatorColor: Colors.white, // رنگ حالت انتخاب زیر هر تب
               tabs: <Widget>[
                 Tab(
                   icon: Icon(Icons.camera_alt),
                 ),
                 Tab(
                   text: 'چت ها',
                 ),
                 Tab(
                   text: 'وضعیت',
                 ),
                 Tab(
                   text: 'تماس ها',
                 ),
               ],
             ),
             actions: <Widget>[
               IconButton(
                 icon: Icon(Icons.search),
                 onPressed: () {
                   print('searchIcon');
                 },
               ),
               IconButton(
                 icon: Icon(Icons.more_vert),
                 onPressed: () {
                   print('moreIcon');
                 },
               )
             ],
           )
         ];
       },
       body: TabBarView(
         controller: tabController,
         children: <Widget>[
           CameraScreen(),
           ChatScreen(),
           StatusScreen(),
           CallScreen()
         ],
       )),
   floatingActionButton: FloatingActionButton(
     child: Icon(Icons.chat),
     onPressed: () {
       print('Floating Click');
     },
   ),
);

همانطور که در کد فوق نیز قابل مشاهده است ، در خط ۳ با استفاده از خصوصیت headerSliverBuilder ویجت NestedScrollView نسبت به تعریف یک ویجت SliverAppBar اقدام کرده ایم . خصوصیت pinned در خط ۶ باعث ثابت شده کل AppBar در پیمایش های عمودی می گردد و خصوصیت floating باعث ثابت شدن قسمت TabBar و مخفی شدن قسمت AppBar می گردد .

می خوانم   تنظیم ADB در Genymotion

نتیجه کد فوق در تصویر زیر دیده می شود :

NestedScrollView

جهت کسب اطلاعات بیشتر از این آدرس به سایت اصلی فلاتر مراجعه نمایید .

امیدوارم این مطلب برای شما مفید باشد .

2+
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم . بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید . آدرس ایمیل : info@javareshkian.ir

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

12 + 20 =