Flutter-如何将小部件置于其他位置?

时间:2019-01-11 09:12:44

标签: dart flutter

我正在使用Stack小部件在 ListView 内部进行布局,但问题是位置。每当我添加另一个小部件时,它总是从TopLeft开始。这就是为什么我使用对称填充。起初,它仍然很容易,但是在使用了三个小部件之后,我觉得使用高度超过 255.0

的对称填充非常麻烦
Padding(
  padding: const EdgeInsets.symmetric(vertical: 235.0)),

the layout

这是我的布局代码的简短版本:

return AnimatedBuilder{
  builder: (BuildContext context, Widget child) {
      return Scaffold(
          //BODY
          body: ListView(
           children: <Widget>[
              new Container(
                 child: new Stack(
                   children: <Widget>[ 
                     //THE WIDGET
                      new Container(),
                      new Transform(),
                      new FadeTransition(),
                      new FadeTransition(),
                      new Text(),

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

答案在您的问题标题中-使用Positioned小部件将小部件放在Stack

现在,此小部件经过专门设计,可在Stack下使用。

根据Documentation

Positioned小部件必须是Stack的后代,并且从Positioned小部件到其封闭Stack的路径必须仅包含StatelessWidgets或StatefulWidgets(不能包含其他类型的小部件,例如RenderObjectWidgets)。

如果将小部件包装在Positioned中,则它是其Stack中的已定位小部件。如果top属性为非null,则此子项的顶部边缘将位于堆栈小部件顶部的顶部布局单元。 right,bottom和left属性的工作方式类似。