آموزش طراحی PageView در فلاتر
یکی از روش های جا به جایی بین صفحات در طراحی اپلیکیشن با استفاده از فلاتر, PageView می باشد.
این جا به جایی از طریق کشیدن انگشت ها بروی صفحه نمایش اتفاق میافتد.
درباره جا به جایی در بین صفحات بصورت عادی قبلا صحبت کرده بودیم که میتونید از لینک زیر آن را مشاهده کنید.
برای پیاده سازی این کار شما نیاز به PageViewController و یک PageView دارید.
PageViewController
PageViewController را داخل یک ویجت StateFull قرار دهید و آن را مقدار دهی کنید.
برای این کار میتونید به شکل زیر عمل کنید.
PageController _controller = PageController(
initialPage: 0,
);
میتونید درون متد init هم آن را مقدار دهی کنید.
در کد بالا مقدار initialPage را برابر صفر قرار دادیم که صفحه ابتدایی را مشخص می کند.
هر وقت خواستید PageViewController را غیر فعال کنید مثل اکثر مواقع میتونید به شکل زیر عمل کنید.
@override
void dispose() {
_controller.dispose();
super.dispose();
}
PageView
بعد از انجام تمام کارها باید controller و داخل PageView قرار بدیم و چندتا ویجت به عنوان فرزند برای نمایش دادن انتخاب کنیم.
PageView(
controller: _controller,
children: [
MyPage1Widget(),
MyPage2Widget(),
MyPage3Widget(),
],
)
کد کامل تر صفحه ما چیزی شبیه به این باید باشه.
class PageViewDemo extends StatefulWidget {
@override
_PageViewDemoState createState() => _PageViewDemoState();
}
class _PageViewDemoState extends State<pageviewdemo> {
PageController _controller = PageController(
initialPage: 0,
);
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return PageView(
controller: _controller,
children: [
MyPage1Widget(),
MyPage2Widget(),
MyPage3Widget(),
],
);
}
}
)
اگر خواستید نحوه جا به جایی در صفحات را از افقی به عمودی تغییر دهید با یک دستور به شکل زیر میتونید این کار و انجام دهید.
PageView(
controller: _controller,
scrollDirection: Axis.vertical,
children: [
MyPage1Widget(),
MyPage2Widget(),
MyPage3Widget(),
],
)
Viewport fraction
اگر در کنترلر مقدار viewportFraction را کمتر از 1 قرار دهید میتونید صفحه های مجاور خودتون و مشاده کنید.
در واقع با این کار کمی سرعت جا به جایی را پایین می آورید و کاربر متوجه این جا به جایی می شود.
PageController _controller = PageController(
initialPage: 0,
viewportFraction: 0.8
);
برای پیاده سازی PageView کتابخانه های مختلفی هم وجود دارند که بنابر نیاز میتونید از آنها استفاده کنید.
یکی از این کتابخانه ها Liquid swipe هست.
مطالب زیر را حتما مطالعه کنید
آموزش پیاده سازی دیتابیس ObjectBox در فلاتر
آموزش اتصال اپلیکیشن فلاتر به پرینتر بلوتوثی
آموزش پیاده سازی معماری MVVM در فلاتر
روش های افزایش امنیت اپلیکیشن در فلاتر
آموزش کار با پکیج Freezed در فلاتر
آموزش ویجت SafeArea در فلاتر
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام ممنون از آموزشتون. روی کد ها که کلیک میشه خود به خود برمیگردیم به بالا و ابتدای صفحه ی سایت. این آزاردهندهس
سلام
مطالب قدیمی این مشکل و دارند که اکثرشون برطرف شده و مابقی به مرور برطرف میشه