Flutter Navigator - Tukar Halaman Dari Stack Halaman
Situasi saya agak membosankan. Saya mendorong 2 halaman ke navigator
A - B
B didorong terbaru.
Untuk beberapa alasan. Saya tidak ingin memunculkan B untuk menavigasi dari B ke A. Saya ingin mengganti / menukarnya. Alasannya adalah karena negara bagian. Saya ingin mempertahankan status halaman A dan B karena ada beberapa widget yang sangat mahal untuk dibuat (widget tampilan Unity). Dari B bagaimana saya bisa menggunakan Navigator sehingga tanpa merusak halaman saya, saya bisa menukar B dengan A?
Berikut alirannya:
A terbuka sebagai halaman default.
B didorong dengan
Navigator.of (konteks) .pushNamed ();
Tumpukan Halaman adalah A - B
Dari BI ingin menavigasi ke A sambil tetap menjaga agar halaman B tetap hidup.
-Setelah beberapa operasi ajaib saya hilang -
Tumpukan Halaman B - A. Pengguna melihat halaman A. Tidak ada halaman yang dihancurkan. Mereka bertukar.
Apakah ada cara untuk melakukan ini di Flutter?
Jawaban
Anda dapat menggunakan PageViewcara sederhana dan mengatur konfigurasi seperti ini:
PageController _pagerController = PageController(keepPage: true);
PageView(
physics: NeverScrollableScrollPhysics(),
controller: _pagerController,
children: [
Page_A(),
Page_B(),
],
),
Dan untuk beralih antar halaman:
goNextPage() {
_pagerController.animateToPage(
currentPage + 1,
duration: Duration(milliseconds: 500),
curve: Curves.ease,
);
}
goPrevPage() {
_pagerController.animateToPage(
currentPage - 1,
duration: Duration(milliseconds: 500),
curve: Curves.ease,
);
}
Saya harap ini bermanfaat untuk Anda.
Mungkin IndexedStack adalah yang Anda cari. Ini berubah antara widget seperti saluran TV. Widget tidak akan dibangun kembali saat diubah.
Sebagai permintaan Anda, beralih halaman dengan animasi, AnimatedSwitchertampaknya paling dekat dengan apa yang Anda inginkan kecuali itu membangun kembali Widget . Jadi saya pikir IndexedStackini adalah awal yang baik untuk apa yang Anda inginkan.
Anda juga dapat merujuk ke animated_indexed_stack.dart atau AnimatedSwitcher dengan IndexedStack yang disebutkan di utas ini