目的:
在原微信界面上选择一个界面添加recyclerview显示。
工具:
Android Studio
原理:
RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。
基本知识:
用法:
- 添加依赖
compile'com.android.support:recyclerview-v7:23.1.1’ - 使用recycleview组件
- 控件初始化,设置布局管理器以及适配器Adapter
相关类:
-
RecycleView.Adapter:负责托管数据,为每一项item创建布局并绑定数据
-
RecycleView.ItemDecoration:给item添加分割线
-
RecycleView.ItemAnimator:负责处理Item增加或删除时的动画
-
RecycleView.ViewHolder:负责承载Item视图的子布局
实例(在一个界面添加item点击事件):
在musicFrabment中添加如下代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
//选择你要实现的视图
View view = inflater.inflate(R.layout.music,container,false);
context = view.getContext();
// 选择你要实现的布局
recyclerView = view.findViewById(R.id.recyclerview_music);
list = new ArrayList<String>();
//设置布局管理器
LinearLayoutManager manager =new LinearLayoutManager(context);
manager.setOrientation(LinearLayoutManager.VERTICAL);
musicadapter = new Musicadapter(context, list);
recyclerView.setLayoutManager(manager);
//绑定适配器
recyclerView.setAdapter(musicadapter);
//给每个item添加分割线
recyclerView.addItemDecoration(new DividerItemDecoration(context,LinearLayoutManager.VERTICAL));
//设置item点击
musicadapter.setOnItemClickLitener(new Musicadapter.OnItemClickLitener()
{
@Override
public void onItemClick(View view, int position)
{
Toast.makeText(context, "你点击的是:" +list.get(position), Toast.LENGTH_SHORT).show();
}
});
//数据
initData();
return view;
}
新建一个musicAdapter,需修改的部分如下:
//设置回调接口
public interface OnItemClickLitener{
void onItemClick(View view,int position);
}
@Override
public void onBindViewHolder(@NonNull Musicadapter.MusicadapterHolder holder, final int position) {
final String content = mList.get(position);
holder.tvContent.setText(content);
//通过为条目设置点击事件触发回调
if(onItemClickLitener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickLitener.onItemClick(v,position);
}
});
}
}
效果图:
若是对recyclerView的使用还有些疑惑,可以自行查找相关知识,也可以看一下这篇文章
希望对你有用。
最后,附上代码仓库,仅作参考:gitee.com/wx_818382bd…