右侧带有labelText的TextField

时间:2019-11-06 17:52:32

标签: flutter flutter-layout

我试图将TextField的标签放在右边,但是我不知道如何。 文本还可以,但是问题出在标签上。

          TextField(
            enabled: this.enable,
            enableInteractiveSelection: false,
            autofocus: false,
            textAlign: TextAlign.right,
            keyboardType: TextInputType.number,
            decoration: InputDecoration(
                labelText: this.label,
                hintText: this.hint,
                alignLabelWithHint: true,
                errorText: snapshot.hasError ? snapshot.error : null),
            obscureText: this.obscure,
            controller: _controller,
          );

有人可以帮助我如何将labelText放在右边吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Directionality

enter image description here

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyHomePageState();
  }
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
          child: Padding(
              padding: EdgeInsets.all(30),
              child: Directionality(
                  textDirection: TextDirection.rtl,
                  child: TextField(
                    textAlign: TextAlign.right,
                    autofocus: true,
                    decoration: new InputDecoration(
                        border: OutlineInputBorder(),
                        labelText: "ایمیل",
                        hintText: "ایمیل خود را وارد کنید"
                    ),
                  )
              )
          ),
        )
    );
  }
}

答案 1 :(得分:0)

我认为TextField小部件没有执行此操作的属性,因此您有2个选择:

1-使用您的自定义属性创建一个自定义TextField,并包含一个用于对齐标签文本的属性。

2-删除标签文本并仅使用提示值,这在材料设计中很常见,因此您的代码应如下所示:

TextFormField(
                enableInteractiveSelection: false,
                autofocus: false,
                textAlign: TextAlign.right,
                keyboardType: TextInputType.number,
                decoration: InputDecoration(
                    hintText: "Hello",
                    alignLabelWithHint: true,
                ),
              )