Rute popup yang sadar engsel berkibar
Saat aplikasi Anda terbenam di Surface Duo, dialog akan masuk ke layar pertama, yang merupakan layar kiri untuk konfigurasi kiri-ke-kanan. Parameter anchorPoint
opsional pada showDialog
metode memungkinkan Anda untuk mengambil alih perilaku ini. Menu popup menghindari engsel secara default. Jika kode Anda memiliki rute modal kustom, Anda dapat membungkusnya dengan DisplayFeatureSubScreen untuk menghindari tumpang tindih engsel.
Secara default, dialog ini muncul di layar kiri untuk konfigurasi kiri-ke-kanan dan layar kanan untuk konfigurasi kanan-ke-kiri:
showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("Hinge Aware Dialog"),
content: Text("Going on the left screen"),
),
);
Kita dapat memaksa dialog untuk masuk ke layar kanan dengan menggunakan anchorPoint
parameter . Ini berfungsi seperti target yang dapat kita gunakan untuk memilih layar yang diinginkan:
showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("Hinge Aware Dialog"),
content: Text("Going on the right screen"),
),
anchorPoint: Offset(1000, 1000),
);
Rute kustom
Anda mungkin memiliki kelas rute modal atau popup Anda sendiri di aplikasi Anda, yang ingin Anda buat sadar engsel. DisplayFeatureSubScreen
Gunakan widget untuk membungkus rute modal Anda. Tambahkan di bagian atas tata letak rute Anda untuk membuatnya menghindari engsel. Widget ini juga mengambil anchorPoint
parameter:
class _MyRoute<T> extends PopupRoute<T> {
@override
Widget buildPage(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) {
return DisplayFeatureSubScreen(
child: _myPageLayout(), // the previous content of buildPage
anchorPoint: Offset.infinite,
);
}
}