Android Flatter ReorderableListView-拖动的灵活项在拖动时会增长到屏幕大小
我有一个使用ReorderableListView的应用程序,但我有一个项目包含它自己的listview,当我拖动它时,它的高度会增长到屏幕高度。 转换完成后,项目将恢复到其原始大小。 未拖动时的外观: vs拖动时的外观(项目增长到屏幕大小): 这是项目小部件:Android Flatter ReorderableListView-拖动的灵活项在拖动时会增长到屏幕大小,android,flutter,dart,Android,Flutter,Dart,我有一个使用ReorderableListView的应用程序,但我有一个项目包含它自己的listview,当我拖动它时,它的高度会增长到屏幕高度。 转换完成后,项目将恢复到其原始大小。 未拖动时的外观: vs拖动时的外观(项目增长到屏幕大小): 这是项目小部件: Widget build(BuildContext context) { return Container( height: null, child: Row( mainAxisSize: MainAxisSiz
Widget build(BuildContext context) {
return Container(
height: null,
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Flexible(
child: Column(
children: <Widget>[
SizedBox(
height: 10,
),
Row(
children: <Widget>[
Expanded(
child: Container(
child: Directionality(
textDirection: TextDirection.rtl,
child: Theme(
data: new ThemeData(
primaryColor: Colors.black,
primaryColorDark: Colors.black,
),
child: TextField(
style: TextStyle(
height: 1,
),
decoration: new InputDecoration(
labelText: "רשומה חדשה",
fillColor: Colors.white,
border: new OutlineInputBorder(
borderRadius: new BorderRadius.circular(25.0),
borderSide: new BorderSide(
color: Colors.black
,width: 1
),
),
//fillColor: Colors.green
),
focusNode: _mainFocusNode,
controller: _textController,
keyboardType: TextInputType.multiline,
maxLines: null,
),
),
),
),
),
Container(
width: 40,
child: InkWell(
child: IconButton(
onPressed: () {
setState(() {
if (_textController.text.length > 0) {
_rows.add(_textController.text);
listHolderManager.updateValue(0);
_textController.text = "";
_counter += 1;
}
});
},
icon: new Icon(MaterialIcons.add_circle),
),
),
)
],
),
SizedBox(
height: 10,
),
Container(
decoration: BoxDecoration(
border: Border.all(
color: Colors.black,
)),
child: _buildStringsList())
],
),
),
],
),
);
小部件构建(构建上下文){
返回容器(
高度:空,
孩子:排(
mainAxisSize:mainAxisSize.max,
儿童:[
灵活的(
子:列(
儿童:[
大小盒子(
身高:10,
),
划船(
儿童:[
扩大(
子:容器(
孩子:方向性(
textDirection:textDirection.rtl,
儿童:主题(
数据:新主题数据(
原色:颜色。黑色,
primaryColorDark:颜色。黑色,
),
孩子:TextField(
样式:TextStyle(
身高:1,,
),
装饰:新的输入装饰(
标签文字:“רשהחחדשה”,
fillColor:Colors.white,
边框:新大纲输入边框(
边界半径:新边界半径。圆形(25.0),
borderSide:新的borderSide(
颜色:颜色。黑色
,宽度:1
),
),
//fillColor:Colors.green
),
focusNode:_mainFocusNode,
控制器:_textController,
键盘类型:TextInputType.multiline,
maxLines:null,
),
),
),
),
),
容器(
宽度:40,
孩子:InkWell(
孩子:我的钮扣(
已按下:(){
设置状态(){
如果(_textController.text.length>0){
_添加(_textController.text);
listHolderManager.updateValue(0);
_textController.text=”“;
_计数器+=1;
}
});
},
图标:新图标(MaterialIcons.add_circle),
),
),
)
],
),
大小盒子(
身高:10,
),
容器(
装饰:盒子装饰(
边界:边界(
颜色:颜色,黑色,
)),
子项:_buildStringsList())
],
),
),
],
),
);
}
我明白为什么Flexible(我也尝试过在它的位置进行扩展)会导致它,但我没有其他解决方案的线索,谢谢
ListView
正在尝试使用所有可用空间。将其包装在容器中
并将高度
传递给容器构造函数。在从ListTile更改为自定义小部件后遇到此问题。ListTile如何保持美观?我通过将mainAxisSize:mainAxisSize.min
添加到我的嵌入式列
,解决了我的问题。