* RecyclerView 是5.0推出的一个组件,存在于V7包中,使用需要导包(添加依赖包)
* Recycler 回收,复用
* RecyclerView 就是循环利用的View,就是我们Android中ListView的一个升华
*
* RecyclerView中item最外层的布局参数是生效的,而ListView的是不生效的
* 更推荐我们书写具体值去加载布局
*
* RecyclerView是一个比ListView更加灵活更加高效的适配器类型控件
* 适用于加载一系列的数据集
*
* RecyclerView 与以前学过的ListView,GridView,ViewPager 有什么区别呢?
* 将显示方式抽离,使用LayoutManager进行控制
* RecyclerView默认提供三种布局管理器
* 三种布局管理器都支持横纵向排列
* ① LinearLayoutManager 线性布局管理器,实现ListView,ViewPager效果
* Gallery 画廊(过时了)
* ② GridLayoutManager 网格布局管理器,实现GridView效果
* ③ StaggeredGridLayoutManager 瀑布流布局管理器
*
* 缺点:点击事件丢失
*
我们可以再adapter里面对条目直接进行设置点击事件 首先是让adapter实现 View.OnClickListener
然后重写两个重要的方法
/**
* 依附在RecyclerView上的时候调用可以通过该方法获得recyclerView
* 绑定
*/
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
Log.e(TAG, "onAttachedToRecyclerView: "+ recyclerView );
mRecyclerView = recyclerView;
}
@Override
public void onDetachedFromRecyclerView(RecyclerView recyclerView) {
super.onDetachedFromRecyclerView(recyclerView);
mRecyclerView = null;
}
接下来是点击事件
@Override
public void onClick(View v) {
//通过该方法 获得被点击条目的位置 关键就在这里
int position = mRecyclerView.getChildAdapterPosition(v);
Log.e(TAG, "onClick: " + position);
..得到位置之后就可以随意设置点击事件了
}
RecyclerView作为Android 5.0引入的高效组件,相比ListView提供了更多的灵活性和性能优势。它支持多种布局管理器,如LinearLayoutManager、GridLayoutManager及StaggeredGridLayoutManager,并且能够更好地管理视图的复用。本文详细介绍了RecyclerView的工作原理、布局管理器的选择及其如何处理点击事件。
443

被折叠的 条评论
为什么被折叠?



