Jay*_*iya 2 android listview android-layout
Android上的"Recycleview"和"Listview"有什么区别?
Android中Recycleview和Listview的确切含义.
ListView上课有点太重了 - 它有很多责任.每当我们必须处理列表时,例如以某种方式配置它,唯一的方法是通过ListView对象或适配器内部.
我们在ListView中讨厌的很多东西都是修复或改变的RecyclerView.默认情况下它更有效,布局是分开的,我们在适配器内的数据集上有更多的可能性.
这些是ListView和之间的关键区别RecyclerView:
该ViewHolder模式允许我们使列表滚动顺利进行.它存储列表行视图引用,并且由于这个原因,调用findViewById()方法只会发生几次,而不是整个数据集和每个数据集bind view.
该RecyclerView适配器迫使我们使用该ViewHolder模式.创建部分(膨胀布局和查找视图)和更新视图分为两种方法 - onCreateViewHolder()和onBindViewHolder().
的ListView,而另一方面,不给我们这种保护在默认情况下,所以没有实施ViewHolder内部模式getView()方法,我们将在我们的名单低效滚动结束.
的LayoutManager花费排布点意见承担责任.多亏了这一点,RecyclerView不必考虑如何定位行视图.这个类让我们有机会选择我们想要显示行视图的方式以及如何滚动列表.例如,如果我们要垂直或水平滚动列表,我们可以选择LinearLayoutManager.对于网格,更适合选择GridLayoutManager.
以前,通过使用ListView,我们只能创建一个垂直滚动列表,因此它不那么灵活.如果我们想要列表中的网格,我们必须选择其他小部件 - GridView.
ItemDecorationItemDecoration理论上的一项任务很简单 - 为列表行视图添加一些装饰 - 但实际上,如果我们想要创建一个自定义的,那么实现起来就很简单了.在这种情况下,我们应该扩展ItemDecoration类并实现我们的解决方案.例如,RecyclerView默认情况下,列表之间没有分隔符,并且与"材料设计"指南一致.但是,如果我们想要出于某种原因添加分隔符,我们可以使用
DividerItemDecoration并将其添加到RecyclerView.如果我们使用ListView,我们必须自己计算行装饰.ItemDecoration这个小部件没有类似的帮助器类.
RecyclerView我想提到的最后但并非最不重要的组成部分是ItemAnimator.正如我们所料,它正在处理行视图动画,如列表外观和消失,添加或删除特定视图等.默认情况下,RecyclerView列表动画非常流畅.当然,我们可以通过创建自己的东西来改变它ItemAnimator,这也不是那么容易.为了简化,我们应该扩展SimpleItemAnimator类并实现我们需要的方法(只需将动画添加到ViewHolder的视图中).说实话,在ListView上实现动画是一件痛苦的事.同样,我们必须弄清楚我们想要如何处理它们.
我们在RecyclerView适配器上有几个很酷的通知器.我们仍然可以使用,notifyDataSetChanged()但也有特定的列表元素,如notifyItemInserted(),notifyItemRemoved()甚至notifyItemChanged()更多.我们应该使用最合适的实际情况,这样正确的动画才能正常启动.
使用ListView,我们只能notifyDataSetChanged()在适配器上使用,然后我们必须自己处理其余部分.
| 归档时间: |
|
| 查看次数: |
3394 次 |
| 最近记录: |