2 Schritte zum Erstellen eines reaktionsschnellen Layouts fĂĽr eine Flutter-Anwendung

In diesem Artikel wird erläutert, wie Sie eine Flutter-Anwendung erstellen, die sich an verschiedene Bildschirme und Ausrichtungen anpassen lässt. Der Artikel ist sowohl für Anfänger als auch für erfahrene Flutter-Benutzer nützlich. Ersterer findet eine Vorlage zum Studieren, letzterer befasst sich erneut mit dem Thema.





Problemstellung oder Problem des adaptiven Layouts

" Mach was du willst ." Flattern





Klingt nach einem spirituell bereicherten Motivator, aber dies ist die wirkliche Ansicht der Framework-Entwickler zu diesem Thema. Flutter hat keine einzige Lösung, die "festgenagelt" ist. Hier hat der Entwickler völlige Freiheit und die Möglichkeit, einen Weg zur Lösung dieser Probleme zu wählen (gleichzeitig und dabei einen Rechen zu sammeln).





Derzeit unterstützt Flutter mobile Plattformen (Android, iOS), Web (im Beta-Kanal), die nur selten für Desktops verwendet werden. Dies bedeutet, dass die Anwendung eine Vielzahl von Bildschirmauflösungen und -ausrichtungen unterstützen muss. Das mobile Gerät (wenn es nicht quadratisch ist) kann vom Benutzer auch im Hoch- oder Querformat gedreht werden. Benutzer mobiler Geräte lieben und wissen, wie dies zu tun ist, während die Anwendung ausgeführt wird, um den Bildschirminhalt detaillierter anzuzeigen. Um den Benutzer nicht zu frustrieren, müssen wir uns um das Problem der Bildschirmrotation kümmern, während die Anwendung ausgeführt wird.





Bei alledem ist es wünschenswert, dass die Anwendung funktioniert und Informationen über ihre wichtige Aktivität anzeigt, trotz der Eigenschaften und Parameter des Geräts, auf das sie gebracht wurde, und welche Aktionen der Benutzer damit ausführen kann.





«, ».





, . Flutter- — , .





- UX , . , FAB (floating action button in material design) , , , — , , .





. , . , , .





Android





. Android (responsive) . : Responsive UI - Layout ( ), Support different screen sizes.





? , , . , ( ) .





, . — master/detail flow Android Studio. , in android way.





, . BDD.





, :

  1. ( dpi ).





  2. ( landscape — , , portrait — , ).





  3. Android Studio landscape, portrait, , .





  4. .





  5. .





  6. , ,   / .





  7. .





, , , :





: https://pub.dev/packages/sizer_mod





example: https://github.com/NickZt/sizer_mod/tree/master/example





. MaterialApp dpi :





@override
Widget build(BuildContext context) {
 return LayoutBuilder(
   builder: (context, constraints) {
     return OrientationBuilder(
       builder: (context, orientation) {
         SizerUtil().init(constraints, orientation);
         return MaterialApp(

      
      



example lib\main.dart





1.

. sizer .





image_tooltip
image_tooltip
image_tooltip
image_tooltip

, SizerUtil.orientation . :





appBar: AppBar(
 title: SizerUtil.orientation == Orientation.portrait
     ? const Text('portrait')
     : const Text('landscape'),
),

      
      



AppBar . example lib\screens\home_screen.dart





.





1 , : «1. ( dpi )».





2.

() ResponsiveWidget. () /. ( default xml in android) landscapeLargeScreen. / , . :





  • landscapeMediumScreen





  • landscapeSmallScreen





  • portraitMediumScreen





  • portraitSmallScreen





  • portraitLargeScreen





WelcomePage landscape , portrait , :





body: ResponsiveWidget(
 landscapeLargeScreen: WelcomePage(
   pageIndex: 0,
   scrollDirection: Axis.vertical,
   children: listOfPages,
 ),
 portraitLargeScreen: WelcomePage(
   pageIndex: 0,
   scrollDirection: Axis.horizontal,
   children: listOfPages,
 ),
),

      
      



:





https://github.com/NickZt/sizer_mod/raw/master/example/images/portrait_land_mob.gif





image_tooltip
image_tooltip

https://github.com/NickZt/sizer_mod/raw/master/example/images/portrait_mob.gif





image_tooltip
image_tooltip

, . , .





? . .









, 2  7 , :





2. ( landscape — , , portrait — , ).





3. Android Studio landscape, portrait, , .





4. .





5. .





6. , / .





7. .





, 3- . , .





( :)) .





, , .  , . , Android. Figma.





, , , , :





: https://pub.dev/packages/sizer_mod





Git : https://github.com/NickZt/sizer_mod





— example: https://github.com/NickZt/sizer_mod/tree/master/example










Responsive UI - Layout





Support different screen sizes





Floating action button in material design





Cross-platform guidelines





Desktop and tablet navigation





Flutter Web: Getting started with Responsive Design





Develop A Responsive Layout Of Mobile App With Flutter








All Articles