【发布时间】:2018-06-26 14:03:39
【问题描述】:
我想为我的应用设置一个静态底栏。 这个栏应该在中间显示一个设备的小时,在右侧显示另一个设备读取的温度。
我的问题只是定位/大小。
当我启动它时(使用 android studio,在真实或虚拟设备上),它不起作用:预览不是我例外,我选择的尺寸似乎已经改变。
但是当我热重载它时,它就变成了我想要的样子:
问题是最终的应用程序不是热重载的应用程序..
我可能已经确定了问题所在, 我使用 MediaQuery.of(context).size 和构建器来获取上下文,以适应所有考虑尺寸的设备。这个解决方案一定很脏,但我没有找到其他任何东西..
这是我的代码,希望情况清楚...
return new MediaQuery(
data: MediaQueryData.fromWindow(ui.window),
child: Builder(
builder: (context) {
return new Builder(
builder: (
context) {
return
new MaterialApp(
home: new DefaultTabController(
length: 6,
child: Scaffold(
bottomNavigationBar:
new Container(
color: Colors.white,
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height*0.1,
alignment: Alignment.centerRight,
child: new Container(
color: Colors.blue,
width: MediaQuery.of(context).size.width* 2/3,
alignment: Alignment.centerRight,
child: new Row(
children: <Widget>[
new Expanded(child: new Container(
color : Colors.yellow,
child: new Text('22 : 22' ),
alignment: Alignment.center,
)),
new Expanded(child:new Container(
color: Colors.pink,
child: new Text(' 37.8 °C'),
margin: new EdgeInsets.all(MediaQuery.of(context).size.width*0.02),
alignment: Alignment.centerRight,
))
],
),
),
),
感谢您的帮助。
【问题讨论】:
-
也许您在更新模型值时没有使用
setState(...)?我没有完全深入研究您的代码。