Recyclerview系列(1)--基础使用
来源:互联网 发布:mac安装win10激活码 编辑:程序博客网 时间:2024/06/06 01:04
1.引入
dependencies {
…
//compile ‘com.android.support:cardview-v7:23.1.1’
compile ‘com.android.support:recyclerview-v7:23.1.1’
}
2.XML:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v7.widget.RecyclerView android:id="@+id/recycler_standard" android:layout_width="fill_parent" android:layout_height="fill_parent" > </android.support.v7.widget.RecyclerView></LinearLayout>
3.代码内调用:
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_standard);recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));// 设置item之间的间隔MyStandardItemDecoration decoration = new MyStandardItemDecoration(20);recyclerView.addItemDecoration(decoration);// 设置动画recyclerView.setItemAnimator(new DefaultItemAnimator());mStandardRecyclerViewAdapter adapter = new mStandardRecyclerViewAdapter();// 设置adapterrecyclerView.setAdapter(adapter);
4.adapter:
class mStandardRecyclerViewAdapter extends RecyclerView.Adapter<mStandardViewHolder> { @Override public int getItemCount() { return datasources.size(); } /** * 这里holder.textview.settext("XXXX"); * */ @Override public void onBindViewHolder(mStandardViewHolder holder, int position) { holder.tv_word.setText(datasources.get(position)); // LayoutParams layoutParams = subview.getLayoutParams(); // layoutParams.height = dataheights.get(position); // subview.setLayoutParams(layoutParams); LayoutParams layoutParams = holder.ll_blue_rec_back .getLayoutParams(); layoutParams.height = dataheights.get(position); holder.ll_blue_rec_back.setLayoutParams(layoutParams); } /** * 这里边初始化 view ... layout * */ @Override public mStandardViewHolder onCreateViewHolder(ViewGroup viewgroup, int position) { View subview = View.inflate(MyDemosApplication.mContext, R.layout.tv_item, null); return new mStandardViewHolder(subview); } }
5.ViewHolder:
/** * viewholder * */ class mStandardViewHolder extends ViewHolder { TextView tv_word = null; LinearLayout ll_blue_rec_back = null; public mStandardViewHolder(View itemview) { super(itemview); tv_word = (TextView) itemview.findViewById(R.id.word_tv); ll_blue_rec_back = (LinearLayout) itemview .findViewById(R.id.ll_blue_rec_back); } }
6.分割线:
/** * 分割线 * */ class MyStandardItemDecoration extends ItemDecoration { int space = 0; public MyStandardItemDecoration(int space) { super(); } /** * 设置分隔大小 * */ @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { outRect.set(space, space, space, space); } /** * 重绘分割线风格 * */ @Override public void onDrawOver(Canvas c, RecyclerView parent, State state) { super.onDrawOver(c, parent, state); } }
7.点击事件:
/** * viewholder :item的findviewbyid */class mStandardViewHolder extends RecyclerView.ViewHolder { TextView tv_word = null; RelativeLayout ll_blue_rec_back = null; public mStandardViewHolder(View itemview) { super(itemview); tv_word = (TextView) itemview.findViewById(R.id.item_answer_text); ll_blue_rec_back = (RelativeLayout) itemview.findViewById(R.id.item_back); itemview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("当前点击位置是" + getPosition()); Toast.makeText(GuessApplication.GlobleContext, "当前点击位置是" + getPosition(), Toast.LENGTH_SHORT); } }); }}
阅读全文
0 0
- Recyclerview系列(1)--基础使用
- RecyclerView详细介绍----基础使用(一)
- recyclerView的基础使用
- RecyclerView的基础使用
- RecyclerView Adapter 系列(1):RecyclerView Array Adapter
- DataBinding系列(三):RecyclerView中使用DataBinding
- RecyclerView使用:初步(1)
- RecyclerView 的使用(1)
- RecyclerView的使用(1)
- RecyclerView详解之基础使用
- RecyclerView详解之基础使用
- RecyclerView系列详解(视频)
- RecyclerView系列详解(视频)
- andorid系列之RecyclerView简单使用
- RecyclerView系列之(1):为RecyclerView添加Header和Footer
- RecyclerView系列之(1):为RecyclerView添加Header和Footer
- RecyclerView系列之(1):为RecyclerView添加Header和Footer
- RecyclerView系列之(1):为RecyclerView添加Header和Footer
- maven
- 弄懂数据库三大范式
- Codeforces #360B: Levko and Array 题解
- 字节写
- I/O多路复用之poll服务器
- Recyclerview系列(1)--基础使用
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数(方法一)
- 用run_full_trafodion_backup.sh全库备份恢复单表
- shiro学习_demo
- flask bottle gunicorn gevent meinheld 组合测试性能(简单读写mongodb)
- Python爬虫学习笔记之基础知识
- nat
- 01-scala-高阶函数
- hbase 源代码解析(2)HAdmin 的表创建过程