列项目未与中心对齐

时间:2020-03-23 17:19:21

标签: flutter

我有一个ButtonTheme和一个InkWell(在列内)未居中。 我尝试使用CrossAxisAlignment.center向左填充,但仍然不填充。 有什么建议吗?

body: Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: <Widget>[

        ButtonTheme(
            minWidth: 300.0,
            child: RaisedButton(
              shape: new RoundedRectangleBorder(
                  borderRadius: new BorderRadius.circular(18.0),
                  side: BorderSide(color: Colors.green)),
              onPressed: () {},
              color: Colors.green,
              textColor: Colors.white,
              child: Text("Sample Text", style: TextStyle(fontSize: 14)),
            )),

        InkWell(
          onTap: () {},
          child: Ink.image(
            image: AssetImage('assets/sampleimg.jpg'),
            width: 280,
            height: 50,
            padding: EdgeInsets.only(left: 60),
          ),
        ),

enter image description here

谢谢

哈维尔·卡塞雷斯

2 个答案:

答案 0 :(得分:1)

尝试用Center小部件包装您的Column小部件

body: Center(
      child: Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: <Widget>[

        ButtonTheme(
            minWidth: 300.0,
            child: RaisedButton(
              shape: new RoundedRectangleBorder(
                  borderRadius: new BorderRadius.circular(18.0),
                  side: BorderSide(color: Colors.green)),
              onPressed: () {},
              color: Colors.green,
              textColor: Colors.white,
              child: Text("Sample Text", style: TextStyle(fontSize: 14)),
            )),

        InkWell(
          onTap: () {},
          child: Ink.image(
            image: AssetImage('assets/sampleimg.jpg'),
            width: 280,
            height: 50,
            padding: EdgeInsets.only(left: 60),
          ),
        ),
      ),

请告知是否可行!!!

答案 1 :(得分:0)

由于该列没有固定的宽度或高度,因此可以用Container包裹它,并为其指定高度和屏幕宽度。 您可以通过以下两行来获取它:

final deviceHeight = MediaQuery.of(context).size.height;
final deviceWidth = MediaQuery.of(context).size.width;

然后您可以使用center widgetcrossAxisAlignment甚至是mainAxisAlignment,因为现在列知道了它的高度和宽度。