Flutter - ListView.builder:初始滚动位置

2024-01-28

我想设置 ListView.builder 的初始滚动位置,我希望列表从底部开始0.0

如果我设置reverse当然,在 listView 上,我将初始滚动位置设置为所需的位置,但我需要的是让最后一个孩子位于底部,是一个聊天应用程序。

这是列表生成器,MessageItem()是聊天消息

ListView.builder(
                    shrinkWrap: true,
                    controller: _scrollController,
                    itemCount: snapshot.data.documents.length,
                    padding: EdgeInsets.all(10.0),
                    itemBuilder: (BuildContext context, int index) =>
                        MessageItem(
                            index: index,
                            document: snapshot.data.documents[index],
                            myId: myId));

这是当有人时我看到的动画send消息


_scrollController.animateTo(
                _scrollController.position.maxScrollExtent,
                duration: const Duration(milliseconds: 500),
                curve: Curves.easeOut);

动画效果很好。


我想要的是当用户进入聊天室时列表滚动位置已经位于底部。


为了避免任何列表未附加滚动的错误,请在构建准备就绪后使用 WidgetsBinding 进行拉出。


void _scrollToBottom() {
    if (_scrollController.hasClients) {
      _scrollController.animateTo(_scrollController.position.maxScrollExtent,
          duration: Duration(milliseconds: 300), curve: Curves.elasticOut);
    } else {
      Timer(Duration(milliseconds: 400), () => _scrollToBottom());
    }
 }

@override
Widget build(BuildContext context) {

  WidgetsBinding.instance.addPostFrameCallback((_) => _scrollToBottom());

  {...} //rest of code;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter - ListView.builder:初始滚动位置 的相关文章

  • 如何在颤动中从图像选择器中裁剪图像?

    我想允许用户裁剪他从图像选择器中选择的图像并保存它 类似于在 Whatsapp 上上传个人资料图片 我怎样才能在颤振中做到这一点 示例图片 您可以使用这2个flutter库来实现这一点 图像选择器 图像裁剪器 图像选择器使用iOS和Andr
  • Flutter 使用 RichText 填空

    我几乎完成了我的应用程序的填空实现 但不幸的是我不断遇到布局问题 然而 当我不断解决问题时 我几乎已经完成了 这是到目前为止的代码 RichText text TextSpan text dummy style TextStyle colo
  • 检查 Future 是否完成

    在 m3 之前 您可以使用 completer future isComplete 检查未来是否已完成 但这似乎已经消失了 有替代品吗 或者我需要自己保存它 似乎在 CompleterImpl 内部仍然有一个字段 isComplete 但它
  • WPF ListView/Gridview 允许用户选择多个项目并将它们分组在一起

    我在 MVVM 应用程序中有一个 WPF ListView GridViwe GridView 绑定到 ViewModel 中的列表 要求是用户应该能够选择网格视图的多行 右键单击它并看到上下文菜单 将这些行组合在一起 选择后 所有这些项目
  • 谷歌字体包是否会下载设备上的字体?

    在我的 flutter Android 应用程序中 第一次启动时 该应用程序显示默认字体 一秒钟后它更改为我从 google fonts flutter 包中使用的字体 我想我的问题是 应用程序第一次启动时是否会立即下载字体 如果是 可以使
  • 颤动:所选值不显示在下拉列表中

    我正在从 SQLite 数据库填充城市名称并尝试显示为下拉列表 我通过遵循教程使其工作 但遇到了一个小问题 所选值不会显示在下拉列表中 它继续显示默认提示值 但是 我能够分配和检索正确的选定值 这是我的代码 cities dart clas
  • jQuery Mobile:$(...).listview 不是函数

    我正在尝试在 UL 中动态插入 LI 元素后刷新 jQuery Mobile 中的列表视图 每当我尝试 myUL listview refresh 在控制台上我收到错误 未捕获的类型错误 listview 不是函数 我该如何解决这个问题 确
  • Dart - 抽象构造函数

    假设我有抽象类 A abstract class A A someConstructor Foo foo A 的所有子类都应该实现这样的构造函数 class B extends A override B someConstructor Fo
  • [flutter]为什么我的列对齐总是居中?

    我声明了连续两列来布局文本和图标 即使我设置了图标的列也始终位于中心mainAxisAlignment with MainAxisAlignment start 这是该卡的代码 import package flutter material
  • 如何将 Firestore 文档数据转换为类

    在 Firestore 中 有一些文档包含 名称 大陆 等字段及其字符串值 我在主 UI 代码中使用 FutureBuilder 并调用getData 功能 这是我的代码 class DatabaseService final locati
  • Flutter - 选择 TextFormField 时键盘不显示

    我目前遇到一个问题 当我选择任何一个时 键盘不会出现TextFormFielda 内的小部件Form小部件 这是表单的代码 位于我的内部CreateAccountForm有状态的小部件 import package flutter mate
  • 如何确定我们是否正在 Dart (Flutter) 中运行单元测试

    在 Flutter Dart 中从单元测试调用函数时 如何确定我正在运行单元测试还是实际应用程序 如果在单元测试中 我想传递不同的数据 您可以使用以下内容来检查您是否正在运行测试 Platform environment containsK
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • 在 flutter 中强制重建有状态子部件

    假设我有一个主屏幕 有状态小部件 其中有一个变量count作为状态 在此主屏幕中 有一个按钮和另一个有状态小部件 我们称之为MyListWidget MyListWidget初始化它自己的小部件initState取决于的值count多变的
  • 如何测试聊天网络应用程序

    我正在开发chat应用程序 在服务器上使用 node js socket io 模块 在客户端上使用 javascript 随着它变得越来越复杂 我厌倦了通过跨浏览器单击来测试不同的使用场景 现在我使用不同的浏览器来分离cookie 因此
  • React Native ListView:前置项目

    是否可以将项目添加到 React Native 的 ListView 上onTopReached事件类似于将项目附加到onEndReached事件 目前 当我将行添加到列表中时 ListView 会滚动到顶部 用例 我有一个带有用户可以向下
  • 如何在颤动中添加行之间的空间?

    主要问题是我想在行之间添加一些空格 并且该行是SingleChildScrollView 我的小部件树 child SingleChildScrollView child Column mainAxisAlignment MainAxisA
  • 颤动列表视图与无线电不显示在警报对话框中

    这是代码 代码 class ThemeChangerWidget extends StatelessWidget final List
  • 使用 onAuthStateChanged 通过 Flutter 登录 Firebase

    在 Flutter 之外 当我实现 firebase 身份验证时 我总是使用 firebase 提供的 onAuthStateChanged 侦听器来确定用户是否登录并做出相应响应 我正在尝试使用 flutter 做类似的事情 但我可以找到
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca

随机推荐

  • java中同一数组的元素比较

    我正在尝试比较同一数组的元素 这意味着我想将 0 元素与其他所有元素进行比较 将 1 元素与其他所有元素进行比较 依此类推 问题是它没有按预期工作 我所做的是我有两个从 0 到 array length 1 的 for 循环 然后我有一个
  • Netbeans 7.2 显示“无法解析标识符”,尽管构建成功

    我正在使用Netbeans IDE 7 2 with C C 插件 最新版本 1 18 1 1 和 如果我构建我的项目 一切都很好 但 IDE 会显示错误 例如 无法解析标识符 其他人也有这个错误 我该如何解决它 这是我对另一个问题的回答的
  • NEST (elasticsearch) 在多个字段中突出显示

    我已经使用 Nest 成功获得了结果和突出显示 但如果我包含两个字段来搜索突出显示 则它在构建 elasticsearch 查询时仅使用最后一个字段 例如下列 Query qry gt qry QueryString qs gt qs Qu
  • 将 SoapHeader 添加到 org.springframework.ws.WebServiceMessage

    如何将对象添加到肥皂头org springframework ws WebServiceMessage 这是我希望最终得到的结构
  • 有没有可以替代 parse_qs 来处理分号的方法?

    TL DR 哪些库 调用可用于处理包含与 parse qs 不同的分号的查询字符串 gt gt gt urlparse parse qs tagged python ruby gt gt gt tagged python 完整背景 我正在使
  • Grafana 在 url 中传递访问令牌

    我创建了一个 API 密钥来与第三方应用程序共享 grafana 面板 我想将它嵌入到 iframe 中 但它要求我登录 如何在 url 中发送访问令牌 我一直在关注 http self issued info docs draft iet
  • 使用Python OpenCV将QR码旋转到正确的位置

    我是Python的初学者 目前正在研究二维码检测和解码 我很难将检测到的二维码旋转到正确的位置 我已经用过minAreaRect 旋转我的二维码 但它不起作用 有没有解决方法或正确的方法来做到这一点 谢谢 ROI2 cv2 imread R
  • 列出 LDAP 中的根上下文

    我想列出或搜索 LDAP 树中的根上下文 我使用 Apache Directory Server 和 Java Hashtable
  • 使用未分配的局部变量“字典”

    尽管我在以下代码中分配了值 但仍收到错误 使用未分配的局部变量 字典 private static void UpdateJadProperties Uri jadUri Uri jarUri Uri notifierUri Diction
  • 如何在真实设备上调试(使用Eclipse/ADT)

    我正在尝试弄清楚如何直接在我的手机 HTC Desire 上调试应用程序 我已经安装了手机附带的 USB 驱动程序 并且使用 adb devices 时会列出手机 如何配置 eclipse ADT 在手机上启动而不是启动模拟器 虚拟设备 注
  • ASP.NET MVC 和 WCF

    我目前正在努力学习 MVC 但在我的 在某个时刻学习 列表中 我还学习了 WCF 我只是想知道 WCF 是否应该 可以在 MVC 应用程序中使用 背景是我想要一个桌面应用程序 NET 3 5 WPF 与我的 MVC 网站交互 我想知道在两者
  • 通过单个命令安装私有和公共 NPM 软件包

    我在 package json 文件中列出了一些 npm 包 有些是公共的 有些是私有的 我想通过使用在单个命令中安装两种类型的包npm install 如果 npm 注册表设置为全局 则私有包显示404 那么如何通过单个命令来实现这一点
  • jetty-maven-插件和 loadTimeWeaver

    似乎无法让我的 Spring Web 应用程序与 jetty maven 插件一起使用 我总是得到 org springframework beans factory BeanCreationException Error creating
  • 我不懂指针

    什么是指针 什么是取消引用 如果p是一个指针 有什么区别 p some value and p other value 什么是p some variable意思是 什么是NULL指针 当取消引用 NULL 指针时会发生什么 准备一叠黄色便利
  • 运行 Quartz 作业时补偿时区偏移

    我有一个独特的问题 因为我的quartz作业调度程序实现是使用quartz net代码库版本2 0 1构建的 最近发现在运行和执行作业时时区和utc偏移量被忽略 这是该版本quartz net 中的一个继承错误 更新到版本 2 1 1 目前
  • 如何让 SQLCMD 仅输出错误和警告

    在执行 SQL 脚本文件时 如何让 SQLCMD 只输出它遇到的任何错误或警告 我本质上不希望输出基于信息的消息 这是不可能阻止的SQLCMD通过向其传递参数来返回非错误输出消息 但是 您可以做的是将错误消息重定向到STDERR 然后将所有
  • 为所有 UIViewController 实例设置全局默认后退按钮显示模式

    iOS 14 推出可配置后退按钮模式 例如 您可以在按钮上添加 后退 标签文本 但在紧凑的历史菜单中您仍然可以看到以前控制器的正确标题 我正在寻找一种简单 愉快的方法来配置默认模式 因此运行时的所有 UIViewController 实例都
  • 如何在不使用联接的情况下重写查询

    我想知道如果不使用连接 这个查询将如何编写 我一直试图找出连接不可行或无法使用 不可用 的情况 SELECT FROM table1 INNER JOIN table2 ON table1 id table2 id INNER JOIN t
  • SwiftUI macOS 列表行删除填充

    我正在尝试在 MacOS 的 SwiftUI 中的 ListView 中显示一行 但是 我的问题是该行周围包含填充 我想把它延伸到我的边界ListView 苹果使用 listRowInsets EdgeInsets 在他们的例子中 不过 这
  • Flutter - ListView.builder:初始滚动位置

    我想设置 ListView builder 的初始滚动位置 我希望列表从底部开始0 0 如果我设置reverse当然 在 listView 上 我将初始滚动位置设置为所需的位置 但我需要的是让最后一个孩子位于底部 是一个聊天应用程序 这是列