首页 > 其他分享 >Flutter中scroll_to_index 实现列表滚动到指定索引的库

Flutter中scroll_to_index 实现列表滚动到指定索引的库

时间:2024-08-10 17:27:17浏览次数:13  
标签:index 滚动 10 Flutter controller child override scroll

scroll_to_index 是一个用于在 Flutter 中实现列表滚动到指定索引的库

依赖

scroll_to_index: ^3.0.1 #滑动位置

使用

class ScrollToIndexExample extends StatefulWidget {
  @override
  _ScrollToIndexExampleState createState() => _ScrollToIndexExampleState();
}

class _ScrollToIndexExampleState extends State<ScrollToIndexExample> {
  late AutoScrollController _controller; // 自动滚动控制器
  static const int ITEM_COUNT = 100; // 列表项总数

  @override
  void initState() {
    super.initState();
    _controller = AutoScrollController(); // 初始化控制器
  }

  @override
  void dispose() {
    _controller.dispose(); // 销毁控制器
    super.dispose();
  }

  // 滚动到指定索引
  Future<void> scrollToIndex(int index) async {
    await _controller.scrollToIndex(index,
        preferPosition:
            AutoScrollPosition.middle, // 目标对齐的位置,begin 左侧  middle居中 end末尾
        duration: Duration(milliseconds: 1000)
        // Duration.zero // 不使用动画,立即滚动

        ); // 滚动到指定位置
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        ElevatedButton(
          onPressed: () {
            scrollToIndex(10); // 滚动到第 10 项
          },
          child: Text('Scroll to Index 10'),
        ),
        Expanded(
          child: ListView.builder(
            controller: _controller, // 使用控制器
            itemCount: 50,
            itemBuilder: (context, index) {
              return AutoScrollTag(
                key: ValueKey(index), // 为每个列表项提供唯一键
                controller: _controller,
                index: index,
                child: Container(
                  height: 50,
                  color: index.isEven ? Colors.blue[100] : Colors.blue[200],
                  child: Center(
                      child: ElevatedButton(
                          onPressed: () {
                            scrollToIndex(index); // 滚动到第 10 项
                          },
                          child: Text('Item $index'))),
                ),
              );
            },
          ),
        ),
      ],
    );
  }
}

 

标签:index,滚动,10,Flutter,controller,child,override,scroll
From: https://www.cnblogs.com/xbinbin/p/18352551

相关文章

  • SQL 中的索引(INDEX)是什么,以及如何创建和优化索引以提高查询性能?
    索引是一种帮助加快数据库查询的数据结构。它类似于书籍的目录,通过记录数据中列值的位置来加快查询速度。创建索引:在SQL中,可以使用CREATEINDEX语句来创建索引。通常,索引会在常用查询的列上创建,以提高查询的性能。下面是创建索引的示例:CREATEINDEXindex_nameONta......
  • Flutter实现启动页、闪屏广告页、引导页Flutter的flutter_native_splash库
    ///yaml文件中的配置信息,可以参考官方文档color:"#42a5f5"#图片格式必须是pngimage:images/avata.png///在main文件中添加代码,主要用来初始化包,并且启动splash页面;WidgetsBindingwidgetsBinding=WidgetsFlutterBinding.ensureInitialized();FlutterNative......
  • 鸿蒙(Harmony) NEXT - AlphabetIndexer实现联系人字母索引
    鸿蒙(Harmony)NEXT9月份就要正式上架了,并且不会再兼容安卓平台,于是我也赶紧给App开发鸿蒙版本,接下来会写一系列的Harmony开发教程。今天使用AlphabetIndexer实现联系人字母索引,AlphabetIndexer是官方封装好的组件咱们实现后的效果图:代码实现首先在aboutToAppear方法中初始......
  • Oracle系列---【磁盘有空间,但是报unable to extend index ... by 128 in tablespace C
    一、Oracle表空间满了的问题可能出现在以下几个方面1.数据文件达到最大大小限制:即使启用了自动扩展,数据文件可能已经达到了其最大大小设置。2.缺乏可用磁盘空间:尽管您提到数据目录有空间,但仍需要确认相关磁盘卷是否有足够的可用空间。3.自动扩展配置问题:检查自动扩展是否配置......
  • 使用LlamaIndex和GPT-4V进行多模态图像检索
    在本文中,我们将演示如何使用LlamaIndex结合GPT-4V和CLIP来实现图像到图像的检索。该过程包括从维基百科下载图像和文本,构建多模态索引,利用GPT-4V进行图像相关性推理,并展示检索结果。步骤1.安装所需的库%pipinstallllama-index-multi-modal-llms-openai%pipinstalll......
  • WPF ScrollViewer控件 触屏滑动
    备份下  原文 https://www.cnblogs.com/webenh/p/18207292<ScrollViewerx:Name="scroll"TouchDown="mScrollViewer_TouchDown"TouchMove="mScrollViewer_TouchMove"TouchUp="mScrollViewer_TouchUp"></ScrollViewer>......
  • 《Advanced RAG》-03-使用 RAGAs + LlamaIndex 进行 RAG 评估
    摘要文章首先介绍了RAG评估的三个主要部分:输入查询、检索上下文和LLM生成的响应。提到了RAGAs提出的RAG评估指标,包括Faithfulness、AnswerRelevance和ContextRelevance,以及RAGAs网站提供的两个额外指标:ContextPrecision和ContextRecall。详细解释了每......
  • vue-seamless-scroll插件点击事件不生效
    vue-seamless-scroll点击事件不生效问题:在使用此插件时发现,列表内容前几行还是能正常点击的,但是从第二次出现的列表开始就没有点击事件了原因:因为html元素是复制出来的(滚动组件是将后面的复制出来一份,进行填铺页面,方便滚动)解决:往滚动组件的父节点上添加绑定事件(js冒泡机制),通过......
  • 赛蓝企业管理系统 AuthToken/Index 身份认证绕过漏洞复现
    0x01产品简介赛蓝企业管理系统是一款为企业提供全面管理解决方案的软件系统,它能够帮助企业实现精细化管理,提高效率,降低成本。系统集成了多种管理功能,包括但不限于项目管理、财务管理、采购管理、销售管理以及报表分析等,旨在为企业提供一站式的管理解决方案。该系统以先进的管......
  • Llamaindex RAG实践
    任务要求:基于LlamaIndex构建自己的RAG知识库,寻找一个问题A在使用LlamaIndex之前InternLM2-Chat-1.8B模型不会回答,借助LlamaIndex后InternLM2-Chat-1.8B模型具备回答A的能力,截图保存。本文将分为以下几个部分来介绍,如何使用LlamaIndex来部署InternLM21.8B(以......