listview - 单击 List Tile 时,我想滚动整个页面
问题描述
我有一个列表视图包装在另一个列表视图中。内部列表视图不应该是可滚动的我希望当用户关闭应用程序单击列表磁贴时,整个页面向下滚动。所以顶部消失了,用户可以看到列表视图的其余部分。现在这是可能的,但只有当用户点击外部屏幕的小边缘时。当有人单击 ListTile directyl 时,没有任何反应。
这是外部列表视图
ListView(children: <Widget>[
new Column(children: <Widget>[
Container(
child: Stack(
alignment: Alignment.bottomCenter,
overflow: Overflow.visible,
这是内部 ListView
Container(
padding: EdgeInsets.only(left: 20.0, right: 20.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ListView(
physics: const AlwaysScrollableScrollPhysics(),
controller: _list,
scrollDirection: Axis.vertical,
shrinkWrap: true,
padding: const EdgeInsets.all(8.0),
children: <Widget>[
Card(
child: ListTile(
leading: ConstrainedBox(
解决方案
请使用 ScrollController.jumpTo() 或 ScrollController.animateTo() 方法来实现这一点。
例如:
class _HomeScreenState extends State<HomeScreen> {
ScrollController _ScrollController = ScrollController();
@override
Widget build(BuildContext context) {
Timer(Duration(milliseconds: 1000), () => _ScrollController.jumpTo(_ScrollController.position.maxScrollExtent));
return ListView.builder(
controller: _controller,
itemCount: 50,
itemBuilder: (context, index) => ListTile(title: Text("ListTile"),));
}
}
你和这个在你想滚动的任何列表上。您还可以使用以下代码禁用滚动。
物理:常量 NeverScrollableScrollPhysics()
推荐阅读
- php - php DateTime 添加或分小时更改其他日期时间
- express - 内容安全策略未出现在响应标头中
- java - 是否可以表明 Web 会话对单个站点(或页面)有效?
- flutter - SearchDelegate 查询更改
- amazon-web-services - AWS amplify graphql appsync - 如何替换数组而不是追加?
- django - 如何在 Django 查询中为每个单词插入通配符?
- css - 更改选择输入选项的字体颜色 R Shiny
- sql - 按 2 列对项目进行分组
- google-sheets - 将文本转换为方程式并在 Google 表格中返回总和结果
- ios - Bundle.main.preferredLocalizations 是否有可能返回多个元素?