gpt4 book ai didi

flutter - 如何在列中对齐小部件?

转载 作者:IT王子 更新时间:2023-10-29 06:51:40 27 4
gpt4 key购买 nike

我想将按钮右对齐。现在,我正在使用一个将 mainAxisAlignment 设置为 MainAxisAlignment.end 的 Row 来完成它,如下例所示。然而,这似乎不是一个好方法,因为它有很多代码,我不认为这是这样做的方法。

我已经尝试过 Align 小部件,但它不起作用。我猜是因为它没有扩展内部小部件,因此 Alignment.centerRight 什么都不做。

我现在使用的代码:

new Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
new FlatButton(
onPressed: _navigateToPreparationStepsWidgetClicked,
child: new Row(
children: <Widget>[
new Text(
'View Preparation Steps'.toUpperCase(),
style: new TextStyle(
fontWeight: FontWeight.bold),
),
new Icon(Icons.keyboard_arrow_right)
],
))
],
)

对齐的正确方法是什么?一个 Button 在例如?

最佳答案

仔细观察,这是因为您的按钮中有一排。默认情况下,一行会展开以占用尽可能多的空间。因此,当您将按钮向右对齐时,它正在这样做,但按钮本身占据了整行。如果你改变颜色,你会更容易看到。简单的答案是在按钮的行上将 mainAxisSize 设置为 MainAxisSize.min。

这对我来说就像预期的那样有效:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(),
body: Column(
children: <Widget>[
FlatButton(child: Text("Default"), color: Colors.blue, onPressed: () {}),
Align(
child: FlatButton(child: Text("Left"), color: Colors.red, onPressed: () {}),
alignment: Alignment.centerLeft,
),
Center(child: FlatButton(child: Text("Centered"), color: Colors.orange, onPressed: () {})),
Align(
child: FlatButton(child: Text("Right"), color: Colors.green, onPressed: () {}),
alignment: Alignment.centerRight,
),
Align(
child: new FlatButton(
onPressed: () {},
child: new Row(
children: <Widget>[
new Text(
'View Preparation Steps'.toUpperCase(),
style: new TextStyle(fontWeight: FontWeight.bold),
),
new Icon(Icons.keyboard_arrow_right)
],
mainAxisSize: MainAxisSize.min,
),
),
alignment: Alignment.centerRight,
),
],
),
),
);
}
}

结果是:

Screenshot of column with aligned items

关于flutter - 如何在列中对齐小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51883341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com