Jetpack:021-Jetpack中的滑动列表

这篇具有很好参考价值的文章主要介绍了Jetpack:021-Jetpack中的滑动列表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


我们在上一章回中介绍了Jetpack中底部导航栏相关的内容,本章回中主要介绍 滑动列表。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们先看一个场景:大家在使用手机时会打开联系人查找某位朋友,由于联系人比较多需要上下滑动才可以找到这位朋友,显示这么多联系人的页面就是滑动列表,它有两个特点:

  • 每行显示相同或者相似的内容;
  • 内容超过手机屏幕时可以滑动显示;

如果使用View开发Android时可以通过ListView或者RecycleView组件实现滑动列表,如果使用Compose开发时可以通过LazyColumn可组合函数实现滑动列表,本章回中将详细介LazyColumn这种滑动列表的使用方法。

2. 使用方法

可组合函数LazyColumn主要控制滑动列表,列表中的成员需要通过可组合函数Item控制。接下来我们分别介绍这两个可组合函数。

2.1 函数参数

可组合函数LazyColumn提供了相关的参数来控制列表,下面是常用的参数:

  • contentPadding参数:主要用来控制列表内容的间距,它会影响滑动列表中所有的内容;
  • reverseLayout参数:表示是否把列表内容倒置,默认值为false,表示正常显示列表中的内容;
  • userScrollEnabled参数:表示是否让滑动列表中的内容滚动显示,默认值为true,表示可以滑动显示;
  • content参数:用来存滑动列表中的内容,它的类型是LazyListScope.() -> Unit,需要通过item函数来赋值;

除了上面介绍的参数外,该函数和Column函数拥有一些共同的参数,比如控制对齐的horizontalAlignmentverticalArrangement参数,这些参数的功能我们在Column函数中介绍过,这里就详细介绍了,如果有看官忘记的话可以点击这里查看以前的内容。

2.2 列表成员

列表成员通过ItemItems函数来实现,通常使用尾lambda语法把它放到LazyColumn函数中,还有一个Items函数,它与Item的区别在于可以把整个列表当作滑动列表的成员,相当于是列表赋值。

这两个函数没有太多的参数,只有一个content参数比较常用,稍后我们将通过示例代码来演示这两个函数的使用方法。

3. 示例代码

LazyColumn(
    //需要通过scaffold传递的参数来设置顶部的边距,不然topBar会和mainScreen中的内容重叠
    modifier = Modifier.padding( top = paddingValues.calculateTopPadding()),
    contentPadding = PaddingValues(horizontal = 16.dp),
    //指定list内容之间的间隔
    verticalArrangement = Arrangement.spacedBy(8.dp),
    //控制列表是否能够滚动,默认值为true,表示可以滚动
    userScrollEnabled = false
) {
    //不能直接使用可组合函数赋值,需要借助item函数
//        Text(text = "this is a list")
    item {
        Text(text = "this is a list")
    }


    //指定list的数量,并且添加分隔线
    items( count = 9, itemContent = { index ->
        Text(text = "This is item ${index+1}")
        Divider(color = Color(0.1f,0.8f,0.9f,1.0f))
    })

    //通过items直接使用list
    items(strList){ item ->
        Text(text = item )
    }
}

上面的示例代码中演示了LazyCloumn以及itemItems三个函数的用法,我们在代码中关键位置添加了注释,这样方便大家理解代码。编译并且运行上面的程序可以得到以下运行效果图。图中还包含一个TopBar,大家可以参考TopBar的内容去编写。
Jetpack:021-Jetpack中的滑动列表,一起Talk AndroidJetPack吧,移动开发,Jetpack,compose,LazyColumn,LazyRow滑动列表

4. 内容扩展

我们在上面介绍的滑动列表是垂直滚动的滑动列表,还一种水平滚动的滑动列表,它通过LazyRow可组合函数实现,该函数的用法和LazyColumn函数的用法十分相似,因此我就不再介绍了。

我们再讨论一下滑动列表的性能,按照官方文档的说法,它只会加载需要显示在页面上的成员,因此性能比较高,它的原理类似于Android View中的RecyclerView,我们在这里只介绍基本的用法,以后有机会了再深入讨论与性能相关的知识。

5. 内容总结

最后,我们对本章回中的内容做一个全面的总结:

  • 滑动列表通过可组合函数LazyColumn和LazyRow实现;
  • 滑动列表中的成员通过可组合函数Item或者Items实现;
  • 滑动列表中的成员数量比较多时,它也会表现出良好的性能;

看官们,与Jetpack中滑动列表相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!文章来源地址https://www.toymoban.com/news/detail-717009.html

到了这里,关于Jetpack:021-Jetpack中的滑动列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Jetpack Compose — Slider滑动条

            在Android Jetpack Compose中,Slider(滑动条)是一个常用的用户界面控件,它允许通过滑动条来选择一个范围或数值。Slider控件非常适用于调整音量、亮度、进度等需要连续调整的场景。 一、Slider的属性         Slider是Android Jetpack Compose中的一个控件,用于实现滑动条

    2024年02月11日
    浏览(52)
  • python爬虫selenium页面滑动案例,作为一个Python程序员你还不会JetPack

    def up_page(self): time.sleep(1) self.driver.find_element(By.XPATH,‘//*[text()=“下一页”]’).click() def save_page(self, n=1): time.sleep(2) with open(f’第{n}页.html’, ‘w’, encoding=‘utf-8’) as f: f.write(self.driver.page_source) def run(self): try: self.save_page() # 第一页 for n in range(2, 6): # 第二三四五页 self.scroll() s

    2024年04月22日
    浏览(50)
  • RecyclerView 滑动布局源码分析:带你深入掌握列表滑动机制

    作者:maxcion 现在 RV 已经初始化好了,那当我们进行滑动交互时代码又是如何执行的呢? RV 优秀就优秀在他是动态布局的,与 ScrollView 不同在于: ScrollView 是初始化时将所有child都 inflate 并 add 而 RV 是只 inflate 屏幕展示得下的child. 如果我们有100个child: ScrollView 便会在初始化时就

    2023年04月23日
    浏览(38)
  • 滑动列表中使用粒子特效层级问题

    前面几个月疯狂堆功能,现在开始疯狂加动效,每次一说到动效就脑壳痛,还不如让我写功能。这不,今天又遇到问题了。滑动列表中mask粒子特效问题遮挡。 步骤1:使用粒子特效的层级应该当前ui层级。 例如:当前界面所在层级为2000,其上的粒子特效至少为2001。 选中所有带

    2024年02月15日
    浏览(39)
  • Taro+vue3 实现滑动列表 时切换电影

    以上代码是滑动的组件 

    2024年01月16日
    浏览(44)
  • Jetpack:025-Jetpack中的多点触控事件

    我们在上一章回中介绍了Jetpack中滚动事件相关的内容,本章回中主要介绍 多点解控事件 。闲话休提,让我们一起Talk Android Jetpack吧! 我们在本章回中介绍的多点触控事件是指通过多个手指同时操作,此时会发出相关的事件,这些事件包含, 缩放,旋转和平移 。常见的使用

    2024年02月06日
    浏览(38)
  • 微信小程序 列表多选 下拉分页 滑动切换分类

    1、卡片列表 2、分页(下拉页面加载分页数据) 3、分类(页面间互不干扰,数据也不干扰) 4、左右滑动可切换分类 5、列表搜索 6、单选模式(默认单选模式,即点击卡片,回写所选数据) 7、 多选 模式(实现微信聊天多选效果) 长按 列表或 点击多选 ,进入多选模式;

    2024年02月03日
    浏览(44)
  • Unity实现一个可扩展的UGUI无限滑动列表控件

    12月20日新增 增加一个可收缩的滑动列表,适用于游戏中的任务系统,成就等 使用说明 创建时需要两个模板slot,一个是button,另一个则是btn下显示的cell 配置如下图添加 ExpandableView 脚本,新增的IsDefaultExpand用来控制是否展开 11月28日新增 增加可调节的顶部间隙和左侧间隙 采

    2024年01月19日
    浏览(42)
  • 微信小程序 - 实现列表 “滑动删除 / 左滑删除” 动画效果示例源码,在列表上向左滑动右侧出现操作按钮,例如:删除 / 收藏 / 编辑等按钮(点击后自动收回),可一键复制运行代码,详细的代码注释!

    在微信小程序开发中,仿微信列表侧滑删除功能,实现拖住列表左滑时,右侧出现操作按钮功能全部源码, 基础示例功能,你直接复制源码加点样式就行了!~ 复制运行。

    2024年02月15日
    浏览(52)
  • Jetpack Compose中的Accompanist

    accompanist是Jetpack Compose官方提供的一个辅助工具库,以提供那些在Jetpack Compose sdk中目前还没有的功能API。 权限 依赖配置: 单个权限申请 例如,我们需要获取相机权限,可以通过 rememberPermissionState(Manifest.permission.CAMERA) 创建一个 PermissionState 对象,然后通过 PermissionState.statu

    2024年02月03日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包