حفظ وضعیت یک StatefulWidget

تعداد بازدید ها : 1,492 بازدید
 حفظ وضعیت یک StatefulWidget

در صورتی که از ویجت های StatefulWidget استفاده می نمایید در برخی مواقع پیش می آید که مایلید وضعیت استیت ها حفظ شوند و مقادیر خود را از دست ندهند . به عنوان مثال زمانی که بین Tab های یک اپلیکیشن در حال جابجایی هستید ، نباید پس از اولین بارگیری اطلاعات ، در نوبت های بعد ، اطلاعات به صورت خودکار مجدد بارگیری شود . در این حالت طبق دستورالعمل زیر عمل نمایید :

۱- دستور (AutomaticKeepAliveClientMixin) را به تعریف State اضافه نمایید .

مانند مثال زیر :

class MyProducts extends StatefulWidget {
  @override
  _MyProductsState createState() => _MyProductsState();
}

class _MyProductsState extends State<MyProducts> with AutomaticKeepAliveClientMixin<MyProducts>{
  @override
  // ignore: must_call_super
  Widget build(BuildContext context) {
    return Container();
  }
}

۲- تابع wantKeepAlive را override کنید و برابر true قرار دهید .

مانند مثال زیر :

class MyProducts extends StatefulWidget {
  @override
  _MyProductsState createState() => _MyProductsState();
}

class _MyProductsState extends State<MyProducts> with AutomaticKeepAliveClientMixin<MyProducts>{
  @override
  // ignore: must_call_super
  Widget build(BuildContext context) {
    return Container();
  }

  @override
  // TODO: implement wantKeepAlive
  bool get wantKeepAlive => true;
}

کار به پایان رسیده است و هم اکنون ویجت شما در فراخوانی های بعدی مقادیر خود را حفظ می کند . این موضوع در صرفه جویی مصرف پهنای باند و سرعت عمل اپلیکیشن اثر مثبتی دارد .

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

می خوانم   تنظیم ADB در Genymotion
محمدمجتبی جوارشکیان

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

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

ارسال یک پاسخ

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

چهار × 2 =