如果 body 很小,如何防止 NestedScrollView 滚动?

nio*_*ode 14 flutter

当 a很小时,如何防止 aNestedScrollView滚动?headerSliverBuilderbody

SliverAppBar在下面的示例中,如果不需要滚动,我想阻止可body滚动,因为它很小,即在这个示例中,视图根本不应该滚动,但它确实滚动了。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: NestedScrollView(
      headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
        return <Widget>[
          SliverAppBar(
            title: Text('Demo'),
            expandedHeight: 300,
          )
        ];
      },
      body: CustomScrollView(
        slivers: <Widget>[
          SliverToBoxAdapter(
            child: Container(color: Colors.red, height: 100),
          ),
          SliverToBoxAdapter(
            child: Container(color: Colors.amber, height: 100),
          ),
        ],
      ),
    ));
  }
}
Run Code Online (Sandbox Code Playgroud)

SliverAppBar这个问题可以通过将移入并完全CustomScrollView不使用 来解决。NestedScrollView但这对我来说不是一个解决方案,因为https://github.com/flutter/flutter/issues/12033基本上要求我使用NestedScrollView.

小智 -1

你应该用 Expanded widget @lalit-rawat 包裹你的小部件/主体

  • 通过额外的支持信息可以改进您的答案。请[编辑]添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以[在帮助中心](/help/how-to-answer)找到有关如何写出好的答案的更多信息。 (6认同)