所以我正在使用一个带有聊天屏幕的应用程序,所以我完成了大多数功能,但是我注意到当键盘显示但消息输入确实向上移动时,listView并没有调整大小。
如您所见,输入确实向上移动,但ListView
没有向上移动,所以当键盘出现时,我尝试通过使用ListView
将ScrollController
向下移动到底部,但是也没用
这是我当前的实现方式:
chat_view.dart
Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
MessageListView(),
ChatInputToolbar(),
]
)
);
message_list_view.dart
Flexible(
child: ListView.builder(
controller: scrollController,
shrinkWrap: true,
reverse: false,
itemCount: messages.length,
itemBuilder: (context, i) {}
)
);
答案 0 :(得分:0)
在您的脚手架中,将resizeToAvoidBottomPadding属性设置为false,然后尝试:
resizeToAvoidBottomInset : false,
答案 1 :(得分:0)
用
替换您的ListView
SingleChildScrollView
和其中的Column
答案 2 :(得分:0)
我认为您应该将容器包装到SingleChildScrollView
中,也许会对您有所帮助。我会这样写:
return SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
MessageListView(),
ChatInputToolbar(),
]
),)
);
答案 3 :(得分:0)
在小部件树的开头使用Scaffold小部件,它解决了我的问题