Android layout 有没有办法阻止CustomScrollView在键盘激活时自动向下滚动?

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

似乎每当我关注文本字段(位于SliverPersistentHeader中)时,SliverList+SliverPersistentHeader就会向下滚动。我已经创建了一些我下面所指的模型:

因此,在这个模型中,用户从第一个布局开始,向上滚动以继续查看lsit,然后当他们单击文本字段时,整个内容向下移动。有什么办法阻止吗

我还附上了我的基本脚手架代码供您阅读:

  @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,等等