Recyclerview系列(1)--基础使用
2017-07-10 22:40
190 查看
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(); // 设置adapter recyclerView.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); } }); } }
相关文章推荐
- Eclipse中Recyclerview跟Coordinatorlayout使用的系列问题
- Android商城开发系列(七)—— 使用RecyclerView展示首页数据
- RecyclerView详细介绍----基础使用(一)
- 【Android 基础】RecyclerView 概述以及使用步骤
- Android笔记系列--RecyclerView.Adapter使用
- Android高级控件系列四之RecyclerView的使用
- RecyclerView的基础使用
- IOS系列——UItableview的基础使用
- RecyclerView的基础使用
- Android基础总结十二:RecyclerView简单使用
- DataBinding系列(三):RecyclerView中使用DataBinding
- recyclerView的基础使用
- RecyclerView系列之三:使用ItemTouchHelper实现RecyclerView的条目交互特效
- andorid系列之RecyclerView简单使用
- IOS系列——UItableview的基础使用
- C#强化系列文章一:ViewState使用兼谈序列化
- memcached系列之1:memcached基础知识简介(为什么要使用memcached做缓存服务器)
- JSP设计模式基础:View Helper模式——学习如何使用View Helper模式使得Model数据适应表现层的需要(1)
- memcached系列之1:memcached基础知识简介(为什么要使用memcached做缓存服务器)
- memcached系列之1:memcached基础知识简介(为什么要使用memcached做缓存服务器)