在Android与recyclerview中使用列表和网格

简介:

1。Android和列表或网格
原文博客地址:http://www.apkbus.com/blog-920677-76896.html
1.1。在Android中使用列表或网格
在列表或网格元素的显示是移动应用的一个很常见的模式。 用户看到的项目的集合,可以通过滚动的集合。 项目可以是一个列表,网格或另一种结构化的数据表示。 等活动所描绘的是一个。
image

用户通过触摸事件或工具栏项的集合的相互作用。 个别项目可以选择。 这个选择可能更新工具栏或屏幕详细基于触发的选择。 以下。

image

1.2。使用recyclerview
这个recyclerview类支持一系列的数据显示。

这是一个现代版的ListView和GridView控件Android框架提供的类。 回收观问题,现有部件的地址有几个。 它执行的编程风格,产生了良好的性能。 它默认动画去也。

recyclerview允许使用不同的布局管理器定位项目。

回收视图使用viewholder存储引用的观点来看,在回收一个条目。 viewholder类在适配器持有相关观点引用静态内部类。 这些引用你的代码可以避免findviewbyid()用新的数据更新的部件的方法。

1.3。适配器
一个适配器管理数据模型和适应个别条目 扩展部件。recyclerview。适配器阶级和被分配到回收的观点通过recyclerview.setadapter方法。输入适配器一个回收的 视图可以是任意的java对象。 在此输入适配器总数必须归还物品getitemcount()方法

适配器准备项目的布局,为每个单独的数据元素充气正确的布局。 这工作了oncreateviewholder方法 它返回一个对象。viewholder每个视觉进入回收期。

这个实例是用于访问在布局视图。 oncreateviewholder方法只叫新视图必须创建。

在一个回收查看每一个可见的入口充满了正确的数据模型项的适配器。 一旦数据项变得可见,适配器将此数据个别部件他膨胀的早期工作。 这onbindviewholder方法

例如,在一个列表中的条目可能会在左侧,两行文字中,如下面的图形描述的图像。

image

一个这样的线可能看起来像下面的布局文件。

android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >

<ImageView
    android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="6dip"
    android:contentDescription="TODO"
    android:src="@drawable/ic_launcher" />

<TextView
    android:id="@+id/secondLine"
    android:layout_width="fill_parent"
    android:layout_height="26dip"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@id/icon"
    android:ellipsize="marquee"
    android:maxLines="1"
    android:text="Description"
    android:textSize="12sp" />

<TextView
    android:id="@+id/firstLine"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/secondLine"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_alignWithParentIfMissing="true"
    android:layout_toRightOf="@id/icon"
    android:gravity="center_vertical"
    android:text="Example application"
    android:textSize="16sp" />


1.4。Gradle依赖使用回收的观点

这个recyclerview部件交付作为图书馆可以作为API 7级或更高。 添加一个依赖最新版本库到你的摇篮,建立文件使用。

dependencies {

...
compile "com.android.support:recyclerview-v7:25.3.1"

}

1.5。默认的布局管理器
布局管理器决定如何在数据recyclerview显示。 回收查看图书馆提供下列建设布局。

linearlayoutmanager显示垂直滚动列表或水平的项目。

gridlayoutmanager显示在一个网格项目。

staggeredgridlayoutmanager显示在一个网格项目。

1.6。有关实现类的使用recyclerview
实施recyclerview需要几类来实现。 类最重要的列在下面

表1。重要的recyclerview API
类 目的 可选
适配器
提供的数据,负责创建的个人参赛的意见
要求的
viewholder
包含所有的视图的输入数据填充的参考
要求的
布局管理器
包含所有的视图的输入数据填充的参考
需要,但是默认的实现
itemdecoration
负责绘制装饰在顶部或入口视图容器
默认的行为,但可以被重写
itemanimator
负责如果添加条目定义动画,删除或重新排序
默认的行为,但可以被重写
你也可以为布局管理器和动画提供自定义实现。

1.7。在回收处理单击事件的看法
触摸事件,如点击应该由回收的意见处理。 如果视图应该引发一些对象在使用它(活动或片段),你可以通过构造函数的适配器通过它。 这允许适配器存储对象的引用和调用它的方法。

1.8。在回收视图布局
适配器需要为每个条目提供的视图层次结构。 典型完成充气的XML布局。

    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">
    <!-- views contained in each line -->

这根的布局是一个典型的ViewGroup(布局管理器)和包含几个其他的观点。 下图显示列表布局为奇数和偶数的不同了。
image

在getitemviewtype方法的回收期确定哪些类型应该用于数据 框架自动调用。oncreateviewholder如果这种类型的需要。 这个方法你布置充气正确的类型,并返回一个拟合的观点。

1.9。自定义动画
在“自定义动画recyclerview,实现自己的动画的扩展recyclerview.itemanimator类并使用recyclerview。setitemanimator()方法为它指定 你的插件。

1.10。过滤和排序
过滤和排序是通过适配器来处理。 你需要逻辑在自定义适配器来实现。

1.11。在适配器的数据更新
这个notifyiteminserted(位置)在适配器的方法可以用来通知认为,一个新条目已插在某个位置。

这个notifyitemremoved(位置)方法可用于通知认为条目已在某个位置删除。

1.12。对于recyclerview刷卡支持
这个itemtouchhelper类使刷卡解雇和拖放简单实现。 实施ONMOVE拖放的方法和onswiped对核工业的支持。

看到[ recyclerview_swipe ]一个实例的实现。

2。练习:使用一个新的Android应用程序recyclerview
在这个练习中你创建了一个项目使用recyclerview类显示一个列表。

image

2.1。创建项目并添加工具的依赖
创建一个新的Android项目使用com.vogella.android.recyclerview顶层包名。

添加以下依赖你的摇篮,构建文件。

dependencies {

...
compile "com.android.support:recyclerview-v7:25.3.1"

}

2.2。创建布局文件

创建或更新配置文件称为activity_main.xml所以,它包含recyclerview

<?xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"
android:layout_height="match_parent" >

<!-- A RecyclerView with some commonly used attributes -->

<android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="12dp"
    android:layout_marginRight="12dp"
    android:elevation="2dp"
    android:src="@android:drawable/ic_menu_add" />

相关文章
|
5月前
|
存储 数据库 Android开发
安卓Jetpack Compose+Kotlin,支持从本地添加音频文件到播放列表,支持删除,使用ExoPlayer播放音乐
为了在UI界面添加用于添加和删除本地音乐文件的按钮,以及相关的播放功能,你需要实现以下几个步骤: 1. **集成用户选择本地音乐**:允许用户从设备中选择音乐文件。 2. **创建UI按钮**:在界面中创建添加和删除按钮。 3. **数据库功能**:使用Room数据库来存储音频文件信息。 4. **更新ViewModel**:处理添加、删除和播放音频文件的逻辑。 5. **UI实现**:在UI层支持添加、删除音乐以及播放功能。
|
2月前
|
Android开发 开发者 索引
Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能
本文介绍如何使用 `DiffUtil` 实现 `RecyclerView` 数据集的高效更新,避免不必要的全局刷新,尤其适用于处理大量数据场景。通过定义 `DiffUtil.Callback`、计算差异并应用到适配器,可以显著提升性能。同时,文章还列举了常见错误及原因,帮助开发者避免陷阱。
134 9
|
2月前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
64 8
|
3月前
|
Android开发 开发者 UED
Android项目架构设计问题之加载数据到列表如何解决
Android项目架构设计问题之加载数据到列表如何解决
31 0
|
3月前
|
存储 Android开发 开发者
Android项目架构设计问题之定义RecyclerView的ViewHolder如何解决
Android项目架构设计问题之定义RecyclerView的ViewHolder如何解决
41 0
|
3月前
|
数据可视化 Java 数据挖掘
Android项目架构设计问题之设置RecyclerView的LayoutManager如何解决
Android项目架构设计问题之设置RecyclerView的LayoutManager如何解决
32 0
|
5月前
|
API Android开发 开发者
`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView
【6月更文挑战第26天】`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView。它提供高效的数据视图复用,优化的布局管理,支持多种布局(如线性、网格),并解耦数据、适配器和视图。RecyclerView的灵活性、性能(如局部刷新和动画支持)和扩展性使其成为现代Android开发的首选,特别是在处理大规模数据集时。
62 2
|
5月前
|
Android开发 Kotlin
Android面试题 之 Kotlin DataBinding 图片加载和绑定RecyclerView
本文介绍了如何在Android中使用DataBinding和BindingAdapter。示例展示了如何创建`MyBindingAdapter`,包含一个`setImage`方法来设置ImageView的图片。布局文件使用`&lt;data&gt;`标签定义变量,并通过`app:image`调用BindingAdapter。在Activity中设置变量值传递给Adapter处理。此外,还展示了如何在RecyclerView的Adapter中使用DataBinding,如`MyAdapter`,在子布局`item.xml`中绑定User对象到视图。关注公众号AntDream阅读更多内容。
94 1
|
5月前
|
存储 API Android开发
29. 【Android教程】折叠列表 ExpandableListView
29. 【Android教程】折叠列表 ExpandableListView
452 2
|
5月前
|
安全 Java API
Android获取Wi-Fi网络列表
【6月更文挑战第21天】