Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 如何在SingleChildScrollView中添加或启用位置指示器_Dart_Flutter - Fatal编程技术网

Dart 如何在SingleChildScrollView中添加或启用位置指示器

Dart 如何在SingleChildScrollView中添加或启用位置指示器,dart,flutter,Dart,Flutter,我的多行文本字段需要一个滚动位置指示器,它被包装在SingleChildScrollView中 文本字段中的文本比可见的多,我不清楚是否隐藏了一些文本及其隐藏位置(顶部或底部) 这是Whatsup。文本字段显示一个滚动条。我也想做同样的事情。 只需将文本字段小部件包装在滚动条小部件中即可 例如: new Container( height: 100.0, child: new Scrollbar( child: new TextField( maxLines: nu

我的多行
文本字段
需要一个滚动位置指示器,它被包装在
SingleChildScrollView

文本字段中的文本比可见的多,我不清楚是否隐藏了一些文本及其隐藏位置(顶部或底部)

这是Whatsup。文本字段显示一个滚动条。我也想做同样的事情。

只需将
文本字段
小部件包装在
滚动条
小部件中即可

例如:

new Container(
  height: 100.0,
  child: new Scrollbar(
    child: new TextField(
      maxLines: null,
    )
  ),
)
有关
滚动条
小部件的更多信息,请查看文档


希望有帮助

感谢上面的回答:
SingleChildScrollView
结合LayoutBuilder和约束:new-BoxConstraints:

    Widget _renderTextField() => new LayoutBuilder(
      builder: (context, constraints) => new Column(children: <Widget>[
            new Container(
                    child: new Container(
                    margin: const EdgeInsets.only(
                      right: 5.0,
                    ),
                    child: new Container(
                        constraints: new BoxConstraints(maxHeight: 200.0,
                        maxWidth: constraints.maxWidth),
                        child: new Scrollbar(child: new SingleChildScrollView(
                                scrollDirection: Axis.vertical,
                                reverse: true,
                                child: new TextField(...
Widget\u renderTextField()=>new LayoutBuilder(
生成器:(上下文,约束)=>新列(子项:[
新容器(
子容器:新容器(
边距:仅限常量边集(
右图:5.0,
),
子容器:新容器(
约束:新框约束(最大高度:200.0,
maxWidth:约束。maxWidth),
子项:新建滚动条(子项:新建SingleChildScrollView(
滚动方向:轴垂直,
相反:是的,
子项:新文本字段(。。。

我创建了一个对话框,其中包含一个窗体和一个宽度和高度分别为450和500的子容器。我使用layoutbuilder创建了一个textboxform,最大高度为200,带有滚动条和singlechildscrollview。该行被展开以占据小部件的所有宽度。我有两个包含操作的材质按钮

 String _myvalue;
 final _myTextController = TextEditingController();
 final _formKey = GlobalKey<FormState>();
 final _scrollController = ScrollController();

  Widget build(BuildContext context) {
       return Dialog(
          child: Form(
             key: _formKey,
             autovalidateMode: AutovalidateMode.disabled,
             child: Container(
                 width: 450,
                 height: 500,
                child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: <Widget>[
                  Align(
                    alignment: Alignment.center,
                    child: Text(
                      "Some Text",
                      style: Head2Style,
                    ),
                  ),
                  Divider(height: 50),
                  LayoutBuilder(
                      builder: (context, constraints) => Container(
                          constraints: new BoxConstraints(
                              maxHeight: 200.0,
                              maxWidth: constraints.maxWidth),
                          child: Scrollbar(
                              isAlwaysShown: true,
                              controller: _scrollController,
                              child: SingleChildScrollView(
                                  controller: _scrollController,
                                  child: SizedBox(
                                      width: 400,
                                      child: TextFormField(
                                          decoration: InputDecoration(
                                              icon: Icon(Icons.note),
                                              hintText: "My Text"),
                                          autocorrect: true,
                                          controller: _myTextController,
                                          keyboardType:
                                              TextInputType.multiline,
                                          maxLines: null,
                                          maxLength: 1000,
                                          onChanged: (String value) {
                                            setState(() {
                                              _myvalue = value;
                                            });
                                          })))))),
                  Expanded(
                      child: Row(
                    mainAxisAlignment: MainAxisAlignment.end,
                    crossAxisAlignment: CrossAxisAlignment.end,
                    children: [
                      ElevatedButton(
                        onPressed: () {
                          if (_formKey.currentState.validate()) {
                            _do_something(context);
                          }
                        },
                        child: Text("Do something"),
                      ),
                      ElevatedButton(
                        onPressed: () {
                          Navigator.of(context).pop();
                        },
                        child: Text("Cancel"),
                      )
                    ],
                  )),
      ])//column
      )//container
   )//form
   )//dialog;
}
String\u myvalue;
final _myTextController=TextEditingController();
final _formKey=GlobalKey();
final _scrollController=scrollController();
小部件构建(构建上下文){
返回对话框(
孩子:表格(
键:_formKey,
autovalidateMode:autovalidateMode.disabled,
子:容器(
宽度:450,
身高:500,
子:列(
crossAxisAlignment:crossAxisAlignment.start,
mainAxisAlignment:mainAxisAlignment.spaceAround,
儿童:[
对齐(
对齐:对齐.center,
子:文本(
“一些文字”,
样式:头2样式,
),
),
分隔器(高度:50),
布局生成器(
生成器:(上下文、约束)=>容器(
约束:新的BoxConstraints(
最大高度:200.0,
maxWidth:约束。maxWidth),
子:滚动条(
伊莎韦肖恩:没错,
控制器:\ u滚动控制器,
子:SingleChildScrollView(
控制器:\ u滚动控制器,
孩子:大小盒子(
宽度:400,
子项:TextFormField(
装饰:输入装饰(
图标:图标(Icons.note),
hintText:“我的文本”),
自动更正:正确,
控制器:_myTextController,
键盘类型:
TextInputType.multiline,
maxLines:null,
最大长度:1000,
onChanged:(字符串值){
设置状态(){
_我的价值=价值;
});
})))))),
扩大(
孩子:排(
mainAxisAlignment:mainAxisAlignment.end,
crossAxisAlignment:crossAxisAlignment.end,
儿童:[
升降按钮(
已按下:(){
if(_formKey.currentState.validate()){
_做某事(上下文);
}
},
孩子:文本(“做某事”),
),
升降按钮(
已按下:(){
Navigator.of(context.pop();
},
子项:文本(“取消”),
)
],
)),
])//纵队
)//容器
)//形式
)//对话;
}

Example?不清楚上面的文本字段有很多行内容,但只有几行可见。为了让用户了解更多的内容,我想在文本字段的右侧站点上显示一个滚动条。