Flutter 键盘打开或关闭时重新加载颤振页面
我正在使用flatter创建一个聊天页面,因此页面结构非常简单Flutter 键盘打开或关闭时重新加载颤振页面,flutter,Flutter,我正在使用flatter创建一个聊天页面,因此页面结构非常简单 Container( color: color, child: Column( children: <Widget>[ Flexible( child: ScrollablePositionedList.builder( itemScrollController: _itemScrollController,
Container(
color: color,
child: Column(
children: <Widget>[
Flexible(
child: ScrollablePositionedList.builder(
itemScrollController: _itemScrollController,
itemPositionsListener: _itemPositionListener,
initialScrollIndex: _messages.length - 1,
padding: EdgeInsets.all(8.0),
reverse: false,
itemBuilder: (_, int index) => GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
print("tapped");
FocusScope.of(context).requestFocus(new FocusNode());
},
child: ChatMessage(
message: _messages[index],
),
),
itemCount: _messages.length,
),
),
Divider(
height: 1.0,
),
Container(
padding: EdgeInsets.only(bottom: 32, left: 8, right: 8),
decoration: new BoxDecoration(
color: Theme.of(context).cardColor,
),
child: _textComposerWidget(),
)
],
),
);
容器(
颜色:颜色,
子:列(
儿童:[
灵活的(
子项:ScrollablePositionedList.builder(
itemScrollController:\u itemScrollController,
itemPositionsListener:\u itemPositionListener,
initialScrollIndex:_messages.length-1,
填充:边缘设置。全部(8.0),
反面:错,
itemBuilder:(_,int index)=>GestureDetector(
行为:HitTestBehavior.transparent,
onTap:(){
打印(“抽头”);
FocusScope.of(context).requestFocus(newfocusnode());
},
孩子:聊天信息(
消息:_消息[索引],
),
),
itemCount:_messages.length,
),
),
分隔器(
高度:1.0,
),
容器(
填充:仅限边缘设置(底部:32,左侧:8,右侧:8),
装饰:新盒子装饰(
颜色:主题.of(上下文).cardColor,
),
子项:_textComposer小部件(),
)
],
),
);
问题是当点击
textFrom
或者当键盘打开或关闭重新加载的页面时,我丢失了列表视图中的所有数据,并且textForm()
需要更多信息,似乎您使用的是无状态小部件而不是有状态的需要更多信息,看起来你使用的是无状态小部件而不是有状态的事实上这是我的问题,我在用android方式进行导航抽屉一个活动和碎片,并相应地在颤振中更改碎片,我在用抽屉做一个脚手架,这样更改脚手架的主体小部件会导致上述问题,我不知道为什么会出现这个问题因此,我通过导航到一个新页面或脚手架来解决它。如果你已经解决了这个问题,请将问题标记为“已关闭”,并将工作代码放在这里以帮助其他人。实际上,这是我的问题。我在用安卓方式进行导航抽屉一个活动和碎片,并相应地在颤振中更改碎片。我在用抽屉做一个脚手架,并进行更改scaffold的body小部件以这种方式导致上述问题,我不知道为什么会发生此问题,所以我通过导航到新页面或scaffold来解决此问题。因此,如果您已修复此问题,请将问题标记为已关闭,并将您的工作代码放在此处以帮助其他人