【问题标题】:When the Keyboard opens the text field in the alert dialogue gets hide当键盘打开警报对话框中的文本字段时隐藏
【发布时间】:2020-09-14 13:25:16
【问题描述】:

我在按下按钮时创建了警报对话框。在警告对话框中有一个文本字段,当键盘打开时会隐藏。我在下面添加了代码 sn-p。

横向视图中的输出: enter image description here

 class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: _MyAppState(),
        );
      }
    }
    class _MyAppState extends StatelessWidget {
      TextEditingController _textFieldController = TextEditingController();
    
      _displayDialog(BuildContext context) async {
        return showDialog(
            context: context,
            barrierDismissible: true,
            builder: (context) {
              return AlertDialog(
                title: Text('AlertDialog with TextField'),
                content: SingleChildScrollView(
                  child: TextField(
                    controller: _textFieldController,
                    decoration: InputDecoration(
                      hintText: "ENTER A TEXT",
                    ),
                    autofocus: true,
                  ),
                ),
                actions: <Widget>[
                  FlatButton(
                    child: Text('SUBMIT'),
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                  )
                ],
              );
            });
      }
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('AlertDialog with TextField '),
            ),
            body: Center(
              child: FlatButton(
                child: Text(
                  'Show Alert Dialogue',
                ),
                color: Colors.deepOrange,
                onPressed: () => _displayDialog(context),
              ),
            ),
          ),
        );
      }
}

【问题讨论】:

    标签: flutter


    【解决方案1】:

    删除 singlechildscriollview 并将文本字段包装在具有一定高度的容器内。当您将滚动项放入警告框中时,在某些情况下,键盘打开可能会产生问题。

       showDialog(
            context: context,
            barrierDismissible: true,
            builder: (context) {
              return AlertDialog(
                title: Text('AlertDialog with TextField'),
                content: Container(
                  height: 35,  
                  child: TextField(
                    controller: _textFieldController,
                    decoration: InputDecoration(
                      hintText: "ENTER A TEXT",
                    ),
                    autofocus: true,
                  ),
                ),
                actions: <Widget>[
                  FlatButton(
                    child: Text('SUBMIT'),
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                  )
                ],
              );
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多