Android layout 有没有办法阻止CustomScrollView在键盘激活时自动向下滚动?
似乎每当我关注文本字段(位于SliverPersistentHeader中)时,SliverList+SliverPersistentHeader就会向下滚动。我已经创建了一些我下面所指的模型: 因此,在这个模型中,用户从第一个布局开始,向上滚动以继续查看lsit,然后当他们单击文本字段时,整个内容向下移动。有什么办法阻止吗 我还附上了我的基本脚手架代码供您阅读:Android layout 有没有办法阻止CustomScrollView在键盘激活时自动向下滚动?,android-layout,flutter,dart,flutter-layout,Android Layout,Flutter,Dart,Flutter Layout,似乎每当我关注文本字段(位于SliverPersistentHeader中)时,SliverList+SliverPersistentHeader就会向下滚动。我已经创建了一些我下面所指的模型: 因此,在这个模型中,用户从第一个布局开始,向上滚动以继续查看lsit,然后当他们单击文本字段时,整个内容向下移动。有什么办法阻止吗 我还附上了我的基本脚手架代码供您阅读: @override Widget build(BuildContext context) { return Sca
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Consts.coMainBackground,
resizeToAvoidBottomInset: false,
body: CustomScrollView(
slivers: <Widget>[
_sliverAppBar(),
_makeHeader(),
BlocBuilder<AllPersonsBloc, AllPersonsState>(
builder: (context, state) {
if (state is AllPersonsLoading) {
return _buildLoading();
} else if (state is AllPersonsLoaded) {
return _sliverList(context, state.persons);
} else if (state is AllPersonsError) {
return _buildErrorMessage(state.message);
} else {
return _buildErrorMessage('Unknown error!');
}
},
),
],
),
);
}
@覆盖
小部件构建(构建上下文){
返回脚手架(
背景颜色:Consts.comainback,
resizeToAvoidBottomInset:false,
正文:自定义滚动视图(
条子:[
_sliverAppBar(),
_makeHeader(),
BlocBuilder(
生成器:(上下文、状态){
如果(状态为AllPersonsLoading){
返回_buildload();
}else if(状态为AllPersonsLoaded){
return\u sliverList(上下文、状态、人员);
}else if(状态为AllPersonsError){
返回_buildErrorMessage(state.message);
}否则{
返回_buildErrorMessage('未知错误!');
}
},
),
],
),
);
}
\u makeHeader
创建了SliverPersistentHeader,其余的我认为应该基于名称
非常感谢您的帮助:)
谢谢 明白了
return SliverAppBar(
automaticallyImplyLeading: false,
backgroundColor: Consts.coForestGreenBackground,
expandedHeight: 207,
titleSpacing: 0,
elevation: 0,
floating: false,
pinned: false,
snap: false,
flexibleSpace: FlexibleSpaceBar(
请注意,该项目未固定/浮动/捕捉。然后输入(本例中为TextField)的滚动填充(顶部)为0是很重要的
您的脚手架还需要一个appbar。所以从技术上讲,你有一个appbar和一个SliverAppBar,但SliverAppBar只是用来包装flexibleSpace
或者更确切地说,在元素上的任何填充之后为零。在我的例子中是40,因为TextField的顶部填充为30,而包含它的元素的顶部填充为10,等等