آموزش طراحی 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 را کمتر از ۱ قرار دهید میتونید صفحه های مجاور خودتون و مشاده کنید.
در واقع با این کار کمی سرعت جا به جایی را پایین می آورید و کاربر متوجه این جا به جایی می شود.
PageController _controller = PageController(
initialPage: 0,
viewportFraction: 0.8
);
برای پیاده سازی PageView کتابخانه های مختلفی هم وجود دارند که بنابر نیاز میتونید از آنها استفاده کنید.
یکی از این کتابخانه ها Liquid swipe هست.
مطالب زیر را حتما مطالعه کنید
آموزش پیاده سازی لینت Lint در برنامه نویسی فلاتر
آموزش الگوی تزریق وابستگی در فلاتر Dependency Injection
کتاب های آموزش برنامه نویسی فلاتر + دانلود PDF
آموزش نصب فلاتر و رفع خطاهای رایج ساخت پروژه + ویدیو
آموزش استفاده از نقشه در فلاتر
آموزش ساخت Navigation Drawer در فلاتر
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام ممنون از آموزشتون. روی کد ها که کلیک میشه خود به خود برمیگردیم به بالا و ابتدای صفحه ی سایت. این آزاردهندهس
سلام
مطالب قدیمی این مشکل و دارند که اکثرشون برطرف شده و مابقی به مرور برطرف میشه