2017-10-09 4 views
2

Wie setze ich AppBar Höhe im Querformat, so dass es nicht für Bildschirmauffüllen dauert?Flattern Querformat Layout

enter image description here

Gibt es eine übliche Flutter Landschaft Layout Widget? Vorgenannte problematische Layout ist wie folgt:

new Padding(
    padding: media.padding, 
    child: new Scaffold(
     key: _scaffoldKey, 
     body: new Row(
     children: <Widget>[ 
      new LimitedBox(
      maxWidth: 320.0, 
      child: new Column(children: [ 
       _buildAppBar(), 
       new Expanded(
        child: new ModuleDrawer(
       widget.module.sugar, 
       topPadding: 0.0, 
      )), 
      ]), 
     ), 
      new Expanded(
      child: new RecordList(
       widget.model, 
      ), 
     ), 
     ], 
    ))); 

Antwort

3

Sie wahrscheinlich die primary Eigenschaft eines Gerüsts, in Kombination Erfassung der Orientierung durch eine einfache MediaQuery nutzen könnten. Stellen Sie also im Querformat den Wert primary auf "false" (Falsch) ein, damit die Scaffold die Höhe der Statusleiste bei der Ermittlung der Höhe AppBar nicht berücksichtigt.

Siehe the documentation:

Ob das Gerüst am oberen Rand des Bildschirms angezeigt wird.

Wenn true, wird die Höhe der appBar um die Höhe der Statusleiste des Bildschirms erweitert, d. H. Die obere Auffüllung für MediaQuery.

Der Standardwert dieser Eigenschaft ist wie der Standardwert von AppBar.primary wahr.

Also in Ihrem Fall, so etwas tun sollte:

@override 
Widget build(BuildContext context) { 
    final Orientation orientation = MediaQuery.of(context).orientation; 
    final bool isLandscape = orientation == Orientation.landscape; 

    return new Scaffold(
     primary: isLandscape? false : true, 
     appBar: new AppBar(
      title: new Text('AppBar title'), 
     ), 
     body: new Center(
      child: new Text('Look at the appbar on landscape!'), 
     ), 
    ); 
} 
+0

Zeitersparnis;) Thx. Ich verwende Ihre Lösung, um das Flattern des Galerie-Animations-Widgets im Querformat zu aktivieren. – toregua

+0

Je nach Anwendungsfall können Sie auch den [OrientationBuilder] (https://docs.flutter.io/flutter/widgets/OrientationBuilder-class.html) verwenden. . Es hängt nicht von der Ausrichtung des Geräts ab, sondern von den Proportionen des übergeordneten Widgets. –