RecyclerView学习--初始化RecycleView
来源:互联网 发布:怎么进入万方数据库 编辑:程序博客网 时间:2024/05/16 18:11
1、布局
RecycleView:
<android.support.v7.widget.RecyclerView android:id="@+id/rc_list" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" />
就像普通控件一样写即可。
item:
<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/item_margin" android:background="@color/item_color" android:gravity="center" android:textSize="@dimen/item_text_size"></TextView>
直接写一个TextView,以后要改为你要的布局即可。
2、Adapter
public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<String> data;//textview的显示的字符串数据 private OnItemClickListener clickListener;//给RecyclerView添加点击事件 public Adapter(List<String> data) { this.data = data; }//初始化时注入数据 public void setOnItemClickListener(OnItemClickListener itemClickListener){//设置注入item点击监听 clickListener = itemClickListener; } /** * 解析布局,并注入到viewHolder * @return 给下一步提供一个ViewHolder */ @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false); return new ViewHolder(v); } /** * 给ViewHolder里面的控件绑定数据 * @param holder * @param position */ @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ((ViewHolder)holder).textView.setText(data.get(position)+position); } @Override public int getItemCount() { return data.size(); } /** * 内部类ViewHolder,用于保存绑定控件,如果设置了点击事件,给控件设置点击监听 */ class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ private TextView textView; public ViewHolder(View itemView) { super(itemView); textView = (TextView) itemView; textView.setOnClickListener(this); } @Override public void onClick(View v) { if(clickListener!=null){ clickListener.onItemClick(v,getPosition()); } } } /** * 定义一个接口用于外部实现RecycleView的item的操作 */ public interface OnItemClickListener { void onItemClick(View v, int position); }}
4、初始化RecycleView
成员变量:
private RecyclerView recyclerView; private List<String> data; private Adapter adapter; private RecyclerView.LayoutManager layoutManager;
Adapter和RecycleView绑定:
private void initRecycleView() { initData(); recyclerView = (RecyclerView) findViewById(R.id.rc_list); layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); recyclerView.setHasFixedSize(true); recyclerView.setItemAnimator(new DefaultItemAnimator()); adapter = new Adapter(data); adapter.setOnItemClickListener(new Adapter.OnItemClickListener() { @Override public void onItemClick(final View v, int position) { v.animate().rotationX(180f).setDuration(300).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); v.animate().rotationX(-0f).setDuration(500).start(); } }).start(); Toast.makeText(MainActivity.this,""+position,Toast.LENGTH_SHORT).show(); } }); recyclerView.setAdapter(adapter); }
将initRecycleView()方法放在onCreate方法中即可。
这样一个RecycleView就写好了。
0 0
- RecyclerView学习--初始化RecycleView
- recycleview初始化
- 学习recycleview
- RecycleView学习
- recycleView学习01
- recycleview学习02
- recycleview学习03
- RecycleView的学习使用
- RecycleView ItemTouchHelper 学习(一)
- RecycleView学习总结
- RecyclerView学习
- RecyclerView学习
- 【学习】RecyclerView
- RecyclerView学习
- RecyclerView学习
- RecyclerView学习
- 学习RecyclerView
- RecyclerView学习
- CentOS7 Failed to start LSB: Bring up/down解决方法
- MYSQL binlog简述及简单操作
- Nginx服务器支持pathinfo模式
- LVS之六:使用keepalived实现LVS的DR模式热备
- 在wpf中,基于dev实现Gridcontrol单元格合并
- RecyclerView学习--初始化RecycleView
- 中国移动也开源 他如何使用Linux、OpenStack?
- lib框架收集
- Python分支和循环
- Java有序数组的实现
- 数据库排序规则
- Android提升进入界面的速度
- FastDFS分布式文件管理系统集群
- JSP基础教程