Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart =>新的_FocusVisibilityDemoState(); } 类_FocusVisibilityDemoState扩展状态{ @凌驾 小部件构建(构建上下文){ 归还新脚手架( appBar:new appBar(标题:新建文本(“文本对话框演示”_Dart_Flutter - Fatal编程技术网

Dart =>新的_FocusVisibilityDemoState(); } 类_FocusVisibilityDemoState扩展状态{ @凌驾 小部件构建(构建上下文){ 归还新脚手架( appBar:new appBar(标题:新建文本(“文本对话框演示”

Dart =>新的_FocusVisibilityDemoState(); } 类_FocusVisibilityDemoState扩展状态{ @凌驾 小部件构建(构建上下文){ 归还新脚手架( appBar:new appBar(标题:新建文本(“文本对话框演示”,dart,flutter,Dart,Flutter,=>新的_FocusVisibilityDemoState(); } 类_FocusVisibilityDemoState扩展状态{ @凌驾 小部件构建(构建上下文){ 归还新脚手架( appBar:new appBar(标题:新建文本(“文本对话框演示”), 正文:新中心( 孩子:新升起的按钮( 按下按钮:\u显示对话框, 孩子:新文本(“推我”), ), ), ); } _showDialog()异步{ 等待显示对话框( 上下文:上下文, 子级:新建\u系统填充(子级:新建警报对话框( co

=>新的_FocusVisibilityDemoState(); } 类_FocusVisibilityDemoState扩展状态{ @凌驾 小部件构建(构建上下文){ 归还新脚手架( appBar:new appBar(标题:新建文本(“文本对话框演示”), 正文:新中心( 孩子:新升起的按钮( 按下按钮:\u显示对话框, 孩子:新文本(“推我”), ), ), ); } _showDialog()异步{ 等待显示对话框( 上下文:上下文, 子级:新建\u系统填充(子级:新建警报对话框( contentPadding:const EdgeInsets.all(16.0), 内容:新行( 儿童:[ 新扩展( 孩子:新文本字段( 自动对焦:对, 装饰:新的输入装饰( labelText:“全名”,hintText:“如约翰·史密斯”), ), ) ], ), 行动:[ 新扁平按钮( 子项:常量文本(“取消”), 已按下:(){ Navigator.pop(上下文); }), 新扁平按钮( 子项:常量文本(“打开”), 已按下:(){ Navigator.pop(上下文); }) ], ),), ); } } 类\u SystemPadding扩展了无状态小部件{ 最后一个孩子; _SystemPadding({Key-Key,this.child}):super(Key:Key); @凌驾 小部件构建(构建上下文){ var mediaQuery=mediaQuery.of(上下文); 返回新的动画容器( 填充:mediaQuery.viewInsets, 持续时间:常量持续时间(毫秒:300), 儿童:儿童); } }
在这种情况下,您可能需要使用全屏键入。@标记如何获取在textfield中输入的值?@ArgaPK您应该实例化TextEditingController实例,并将其传递给textfield的“controller”参数。然后,设置TextField的“OnSubmited”方法,当您点击“OK”时将调用该方法,该方法有一个字符串参数,即您在TextField中输入的数据。您还可以设置“onChanged”方法,因此每次在文本字段中输入内容时,都会调用“onChanged”。不,我不想添加多个文本字段-我只想让用户输入一个文本值。在我的例子中,对话框是合适的,因为它可以保持屏幕的干净和最小化。让我解释一下:想象一个游戏的主屏幕有两个按钮:“创建一个新游戏”和“访问一个共享游戏”。当用户单击第二个按钮时,应用程序要求用户键入用户想要访问的游戏的唯一ID。我的错,我发现这是一个错误,请检查答案中编辑的部分。
padding:mediaQuery.padding,
需要更改为
padding:mediaQuery.viewInsets,
@aziza如何获取在文本字段中输入的值?要获取
textfield
的值,可以使用
textededitingcontroller
import 'package:flutter/material.dart';

class FocusVisibilityDemo extends StatefulWidget {
  @override
  _FocusVisibilityDemoState createState() => new _FocusVisibilityDemoState();
}

class _FocusVisibilityDemoState extends State<FocusVisibilityDemo> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text('Text Dialog Demo')),
      body: new Center(
        child: new RaisedButton(
          onPressed: _showDialog,
          child: new Text("Push Me"),
        ),
      ),
    );
  }

  _showDialog() async {
    await showDialog<String>(
      context: context,
      child: new AlertDialog(
        contentPadding: const EdgeInsets.all(16.0),
        content: new Row(
          children: <Widget>[
            new Expanded(
              child: new TextField(
                autofocus: true,
                decoration: new InputDecoration(
                    labelText: 'Full Name', hintText: 'eg. John Smith'),
              ),
            )
          ],
        ),
        actions: <Widget>[
          new FlatButton(
              child: const Text('CANCEL'),
              onPressed: () {
                Navigator.pop(context);
              }),
          new FlatButton(
              child: const Text('OPEN'),
              onPressed: () {
                Navigator.pop(context);
              })
        ],
      ),
    );
  }
}

void main() {
  runApp(new MaterialApp(home: new FocusVisibilityDemo()));
}
import 'package:flutter/material.dart';


void main() {
  runApp(new MaterialApp(home: new MyApp(),));
}

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

class MyAppState extends State<MyApp> {
  FullScreenDialog _myDialog = new FullScreenDialog();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
          title: new Text("Fill this form"),
        ),
        body: new Column(
          children: <Widget>[
            new TextField(controller: new TextEditingController(
                text: "Add a single text field"),),

            new Card(child: new ListTile(
              title: new Text("Click to add your top 3 amazing skills"),
              subtitle: new Text(
                  "${_myDialog._skillOne} ${_myDialog._skillTwo} ${_myDialog
                      ._skillThree}"),
              onTap: () {
                Navigator.push(context, new MaterialPageRoute(
                  builder: (BuildContext context) => _myDialog,
                  fullscreenDialog: true,
                ));
              },
            ),
            ),
          ],
        )
    );
  }

}


class FullScreenDialog extends StatefulWidget {
  String _skillOne = "You have";
  String _skillTwo = "not Added";
  String _skillThree = "any skills yet";

  @override
  FullScreenDialogState createState() => new FullScreenDialogState();
}

class FullScreenDialogState extends State<FullScreenDialog> {
  TextEditingController _skillOneController = new TextEditingController();
  TextEditingController _skillTwoController = new TextEditingController();

  TextEditingController _skillThreeController = new TextEditingController();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
          title: new Text("Add your top 3 skills"),
        ),
        body: new Padding(child: new ListView(
          children: <Widget>[
            new TextField(controller: _skillOneController,),
            new TextField(controller: _skillTwoController,),
            new TextField(controller: _skillThreeController,),
            new Row(
              children: <Widget>[
                new Expanded(child: new RaisedButton(onPressed: () {
                  widget._skillThree = _skillThreeController.text;
                  widget._skillTwo = _skillTwoController.text;
                  widget._skillOne = _skillOneController.text;
                  Navigator.pop(context);
                }, child: new Text("Save"),))
              ],
            )
          ],
        ), padding: const EdgeInsets.symmetric(horizontal: 20.0),)
    );
  }


}
import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(home: new FocusVisibilityDemo()));
}

class FocusVisibilityDemo extends StatefulWidget {
  @override
  _FocusVisibilityDemoState createState() => new _FocusVisibilityDemoState();
}


class _FocusVisibilityDemoState extends State<FocusVisibilityDemo> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text('Text Dialog Demo')),
      body: new Center(
        child: new RaisedButton(
          onPressed: _showDialog,
          child: new Text("Push Me"),
        ),
      ),
    );
  }

  _showDialog() async {
    await showDialog<String>(
      context: context,
      child: new _SystemPadding(child: new AlertDialog(
        contentPadding: const EdgeInsets.all(16.0),
        content: new Row(
          children: <Widget>[
            new Expanded(
              child: new TextField(
                autofocus: true,
                decoration: new InputDecoration(
                    labelText: 'Full Name', hintText: 'eg. John Smith'),
              ),
            )
          ],
        ),
        actions: <Widget>[
          new FlatButton(
              child: const Text('CANCEL'),
              onPressed: () {
                Navigator.pop(context);
              }),
          new FlatButton(
              child: const Text('OPEN'),
              onPressed: () {
                Navigator.pop(context);
              })
        ],
      ),),
    );
  }
}


class _SystemPadding extends StatelessWidget {
  final Widget child;

  _SystemPadding({Key key, this.child}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    var mediaQuery = MediaQuery.of(context);
    return new AnimatedContainer(
        padding: mediaQuery.viewInsets,
        duration: const Duration(milliseconds: 300),
        child: child);
  }
}