Flutter 小部件占据屏幕1/3的好方法是什么?

Flutter 小部件占据屏幕1/3的好方法是什么?,flutter,Flutter,我试图让一个小部件占据屏幕的1/3,而不管手机的方位如何。如何实现这一点?有一些小部件可能会有所帮助:AspectRatio、Column/Expanded,特别是CustomSingleChildLayout。但是,如果不确切知道您想要做什么,就很难给出一个好的答案。有一些小部件可能会有所帮助:AspectRatio、Column/Expanded,特别是CustomSingleChildLayout。但是,如果不确切知道自己想要做什么,就很难给出一个好的答案。您应该尝试将小部件作为行的子项使

我试图让一个小部件占据屏幕的1/3,而不管手机的方位如何。如何实现这一点?

有一些小部件可能会有所帮助:AspectRatio、Column/Expanded,特别是CustomSingleChildLayout。但是,如果不确切知道您想要做什么,就很难给出一个好的答案。

有一些小部件可能会有所帮助:AspectRatio、Column/Expanded,特别是CustomSingleChildLayout。但是,如果不确切知道自己想要做什么,就很难给出一个好的答案。

您应该尝试将小部件作为行的子项使用,如下所示:

new Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: [
    new Expanded(
      child: yourFirstContentWidget,
               ),
    new Expanded(
      child: yourNextContentWidget,
               ),
    new Expanded(
      child: yourLastContentWidget,
               )
            ]
        )
扩展的小部件将尝试填充尽可能多的行空间。因为有三个小部件,它们必须共享空间,最终每个小部件将占用行的1/3。

您应该尝试使用小部件作为行的子项,如下所示:

new Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: [
    new Expanded(
      child: yourFirstContentWidget,
               ),
    new Expanded(
      child: yourNextContentWidget,
               ),
    new Expanded(
      child: yourLastContentWidget,
               )
            ]
        )

扩展的小部件将尝试填充尽可能多的行空间。由于共有三个,他们必须共享空间,最终每个人将占据行的1/3。

我通过使用一列并将内容包装为Flexible并更改Flexible,让孩子占据屏幕的1/3,得到了我想要的结果:

new Column(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: <Widget>[
    new Flexible(flex: 2, child: new SizedBox()),
    new Flexible(flex: 1, child: createTextBox())
  ]
);
新列(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
新的Flexible(flex:2,child:new SizedBox()),
新的Flexible(flex:1,child:createTextBox())
]
);

通过使用一个专栏,将内容包装成Flexible,并更改Flexible,让孩子占据屏幕的1/3,我得到了我想要的:

new Column(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: <Widget>[
    new Flexible(flex: 2, child: new SizedBox()),
    new Flexible(flex: 1, child: createTextBox())
  ]
);
新列(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
新的Flexible(flex:2,child:new SizedBox()),
新的Flexible(flex:1,child:createTextBox())
]
);

你能说得更具体些吗?你的意思是你想要像一个小部件一样扩展整个设备的宽度,并且只有高度的1/3?或者你的意思是像一排上的按钮,只有手机宽度的1/3?你能更具体一点吗?你的意思是你想要像一个小部件一样扩展整个设备的宽度,并且只有高度的1/3?或者你的意思是像一排上的按钮,只有电话宽度的1/3?我想我得到了我所需要的东西,但isomg列,然后将孩子们灵活地包装起来。@Mark你能用你的解决方案自我回答这个问题吗?在堆栈溢出时自行回答是可以的,我相信其他人会喜欢看到您的解决方案。谢谢我想我得到了我所需要的东西,但isomg列,然后将孩子们包装在灵活的包装中。@Mark你能用你的解决方案自我回答这个问题吗?在堆栈溢出时自行回答是可以的,我相信其他人会喜欢看到您的解决方案。谢谢