颤动 - 在列表视图构建器中滚动列表视图
Posted
技术标签:
【中文标题】颤动 - 在列表视图构建器中滚动列表视图【英文标题】:flutter - scrolling listview inside listview builder 【发布时间】:2019-04-08 09:38:16 【问题描述】:我有一个“过滤器”,下面是足球比赛的列表。我用 ListView 包装“过滤器和”listview builder”(以便解决 blablabla 下的重载写入问题)。但是当你正常滚动时会出现一些奇怪的情况。滚动到不起作用的列表。只有“发光效果”,但我从上面的“过滤器菜单”滚动,滚动工作。如何让滚动正常运行?
我截取的代码:
Widget _buildListView(FixtureModel model, BuildContext context)
return Container(
child: model.getFixturesCount() == 0
? Center(child: Text('No fixtures found'))
: ListView(
shrinkWrap: true,
children: <Widget>[
Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
padding: EdgeInsets.only(left: 10.0),
child: InkWell(
onTap: () => _onTap(context),
child: Container(
margin:
EdgeInsets.only(top: 5.0, bottom: 5.0),
child: Row(
children: <Widget>[
Container(
padding: EdgeInsets.only(left: 5.0),
child:
Icon(FontAwesomeIcons.github)),
Container(
padding: EdgeInsets.only(left: 15.0),
child: Text(
'Liga Premier Inggris',
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w500),
),
),
Container(
padding: EdgeInsets.only(
left: 5.0, top: 2.0),
child: Icon(Icons.arrow_drop_down,
size: 17.0))
],
)),
)),
Container(
padding: EdgeInsets.only(top: 3.0),
child: Text(
'4',
style:
TextStyle(fontSize: 13.0, color: Colors.grey),
),
),
IconButton(
iconSize: 20.0,
icon: Icon(
FontAwesomeIcons.calendarAlt,
color: Colors.blue,
),
onPressed: () )
],
),
Divider(
height: 0.0,
),
Container(
padding: EdgeInsets.only(top: 2.0),
child: ListView.builder(
shrinkWrap: true,
itemCount: model.fixtureList == null
? 0
: model.getFixturesCount(),
itemBuilder: (context, int i)
var fixture = model.fixtureList[i];
return FixtureListItem(fixture: fixture);
,
))
],
)
],
));
【问题讨论】:
在你的 ListView -add shrinkWrap: true, Physics: NeverScrollableScrollPhysics() @anmol.majhail 您好,先生,希望您状况良好。这个***.com/questions/53293164/…你明白我的问题吗? 是的,您需要使选项卡栏数据持久化 - 对于 - DetailMatchTab(widget.fixture) 类使用 AutomaticKeepAliveClientMixin ,评论文章就是一个很好的例子 - medium.com/@diegoveloper/… class _DetailMatchTabState 使用 AutomaticKeepAliveClientMixin在您的 ListView 中添加:
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
从 ListView 中取出过滤器:remove physics: NeverScrollableScrollPhysics(), then in ListView
body: Column(
children: <Widget>[
Filter(),
Expanded(
child: ListView()
),
]
)
【讨论】:
哇...酷,感谢您的帮助。一件事,当滚动只是一个移动的列表时,“过滤器”是否有可能直立? 是的,将过滤器移出 ListView,在第 1 列小部件中 - 过滤器 2nd Listview。正文:列子项:以上是关于颤动 - 在列表视图构建器中滚动列表视图的主要内容,如果未能解决你的问题,请参考以下文章