flutter 实现不可滚动的ListView构建器

Posted 早起的年轻人-坚果の博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter 实现不可滚动的ListView构建器相关的知识,希望对你有一定的参考价值。

我试图在这里实现一个不可滚动的ListView构建器,但似乎找不到解决方法。原因是因为我希望所有内容都是可滚动的,并且我不想在可滚动的父级中拥有可滚动的小部件。

class _DashboardState extends State<Dashboard> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
        appBar: AppBar(title: Text('App Bar Here')),
        body: SingleChildScrollView(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('Hello World'),
              Container(
                child: ListView.builder(
                  itemBuilder: (context, index) 
                    return Card(
                      child: Padding(
                        padding: const EdgeInsets.all(16.0),
                        child: Column(
                          children: <Widget>[
                            Container(
                                color: Color(0xffaaaaaa),
                                height: 20,
                                child: Text('Jss One')),
                            Text(
                              'English',
                              style: TextStyle(fontSize: 20),
                            ),
                          ],
                        ),
                      ),
                    );
                  ,
                  itemCount: 50,
                ),
              ),],),));
  

最佳答案

class _DashboardState extends State<Dashboard> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
        appBar: AppBar(title: Text('App Bar Here')),
        body: SingleChildScrollView(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('Hello World'),
              Container(
                child: ListView.builder(
                  physics: NeverScrollablePhysics() //add this line,
                  itemBuilder: (context, index) 
                    return Card(
                      child: Padding(
                        padding: const EdgeInsets.all(16.0),
                        child: Column(
                          children: <Widget>[
                            Container(
                                color: Color(0xffaaaaaa),
                                height: 20,
                                child: Text('Jss One')),
                            Text(
                              'English',
                              style: TextStyle(fontSize: 20),
                            ),
                          ],
                        ),
                      ),
                    );
                  ,
                  itemCount: 50,
                ),
              ),],),));
  

将物理属性设置为NeverScrollablePhysics()以便不滚动lisview

以上是关于flutter 实现不可滚动的ListView构建器的主要内容,如果未能解决你的问题,请参考以下文章

Flutter ListView 在构建时滚动到底部

善用 FetchMore GQL 实现无限滚动分页 ListView with Flutter

Flutter Parallax Scroll 中的按钮不可点击

一个 ListView 在 AnimatedCrossFade 中不可滚动

我的 ListView 构建器的 ListTile 小部件不可滚动并且显示渲染问题

Flutter 布局问题(ListView 和 GridView)