android - Flutter dart:如何分隔Text和TextField之间的空间,以及如何将RadioListTile集合在一起?

标签 android flutter dart

我正在学习Flutter。我有问题(请参见下图)。我想在文本“性别”和文本字段“名称”之间分隔空格。我也想将RadioListTile放在一起,它们是非常分开的。有可能这样做吗?按照我的代码

enter image description here

class _AlertDialogWidgetState extends State<AlertDialogWidget> {
  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: ListBody(
        children: <Widget>[
          TextField(
            autofocus: true,
            decoration: InputDecoration(
                contentPadding: new EdgeInsets.symmetric(vertical: 10.0, horizontal: 10.0),
                border: OutlineInputBorder(), hintText: "New user"),
            onChanged: (text) => widget.name = text,
          ),
          Text(
            'Sex',
            textAlign: TextAlign.left,
            overflow: TextOverflow.ellipsis,
            style: TextStyle(fontWeight: FontWeight.bold),
          ),
          RadioListTile(
            title: Text("Female"),
            value: "female",
            groupValue: widget.sex,
            onChanged: (String value) {
              setState(() {
                widget.sex = value;
              });
            },
          ),
          RadioListTile(
            title: Text("Male"),
            value: "male",
            groupValue: widget.sex,
            onChanged: (String value) {
              setState(() {
                widget.sex = value;
              });
            },
          ),
          RadioListTile(
            title: Text("Other"),
            value: "other",
            groupValue: widget.sex,
            onChanged: (String value) {
              setState(() {
                widget.sex = value;
              });
            },
          ),
        ],
      ),
    );
  }
}

最佳答案

TextField包裹Padding,以便在TextFieldText之间放置更多空间,如下所示:

Padding(
  padding: EdgeInsets.only(top: 15),
  child: Text(
    'Sex',
    textAlign: TextAlign.left,
    overflow: TextOverflow.ellipsis,
    style: TextStyle(fontWeight: FontWeight.bold),
  ),
),

对于RadioListTile,您不能更改radio的填充,但是可以使用Radio包装的ListTile并设置其对齐方式使其更接近标题:
ListTile(
  title: Align(
    child: new Text("Female"),
    alignment: Alignment(-1.2, 0),
  ),
  leading: Radio(
    value: "female",
    groupValue: 'F',
    onChanged: (String value) {
      setState(() {
        widget.sex = value;
      });
    },
  ),
)

关于android - Flutter dart:如何分隔Text和TextField之间的空间,以及如何将RadioListTile集合在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61532975/

相关文章:

flutter - Dart/Flutter : Navigate (with Navigator) between Pages without context (so no Navigator. 推送?)

dart - 泛型在 flutter dart 中的使用

flutter - 是否可以将平台 View 从主机 iOS 应用程序添加到 flutter 模块 View 而不转换为插件?

Flutter - InkWell 为什么会影响容器的边距区域

dart - 在 PageController 中动态更改 viewportFraction

android - 单击通知时应用程序未恢复

java - 从字符串获取资源

android-studio - 在flutter中查看小部件所有属性的快捷方式

android - 如何将占位符 UI 实现为启动屏幕

带有 setListAdapter 的 Android 异步类