2017-10-09 127 views
2

如何設置AppBar高度在橫向模式下,這樣它不佔用絲網填充?撲橫向佈局

enter image description here

是否有一個通常的顫振景觀佈局工具?上述問題的佈局如下:

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, 
      ), 
     ), 
     ], 
    ))); 

回答

3

你也許可以使用支架的primary財產,在通過簡單的MediaQuery檢測取向組合。因此,在風景模式,設置primary標誌設置爲false告訴Scaffold確定AppBar高度時,未採取狀態欄的高度考慮進去。

the documentation

無論是在屏幕的頂部顯示此支架。

如果爲true,則appBar的高度將被屏幕狀態欄的高度(即MediaQuery的頂部填充)擴展。

此屬性的默認值,像AppBar.primary的默認值,是真實的。

所以你的情況,這樣的事情應該做的:

@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

節省時間;)THX。我用您的解決方案,以使基於用例風景模式 – toregua

+0

撲畫廊動畫插件工作時,你也可以使用[OrientationBuilder(https://docs.flutter.io/flutter/widgets/OrientationBuilder-class.html) 。而不是依賴設備的方向的,它是基於父窗口部件的比例。 –

相關問題