Recyclerview的使用 是代替了Listview和Gridview
2017-10-24 16:51
316 查看
1.导包
这个主要代替了listview和GridView布局相当于是他们的升级版
2.主函数
3.适配器
4.主布局
5.item布局
compile 'com.android.support:recyclerview-v7:23.4.0'
这个主要代替了listview和GridView布局相当于是他们的升级版
2.主函数
public class MainActivity extends AppCompatActivity { private RecyclerView rv; private ArrayList<String> arr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv=(RecyclerView)findViewById(R.id.rv); arr=new ArrayList<>(); for (int i = 0; i <10 ; i++) { arr.add("我是"+i); } // LinearLayoutManager sta = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false); // rv.setLayoutManager(sta); StaggeredGridLayoutManager st=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL); //设置固定大小 rv.setHasFixedSize(true); rv.setLayoutManager(st); spq sp = new spq(arr, this, rv); rv.setAdapter(sp); } }
3.适配器
RecyclerView.Adapter 可以托管数据集合,为每一项Item创建视图并且绑定数据 RecyclerView.ViewHolder 承载Item视图的子布局 RecyclerView.LayoutManager 负责Item视图的布局的显示管理 RecyclerView.ItemDecoration 给每一项Item视图添加子View,例如可以进行画分隔线之类的 RecyclerView.ItemAnimator 负责处理数据添加或者删除时候的动画效果
public class spq extends RecyclerView.Adapter<spq.ViewHolder> { private Context co; private ArrayList<String> arr; private RecyclerView rv; public spq(Context co, ArrayList<String> arr, RecyclerView rv) { this.co = co; this.arr = arr; this.rv = rv; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //想要item文字居中必须这样写 View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.buju, parent, false); return new ViewHolder(inflate); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.tv.setText(arr.get(position)); } @Override public int getItemCount() { return arr.size(); } public class ViewHolder extends RecyclerView.ViewHolder { TextView tv; public ViewHolder(View itemView) { super(itemView); tv=itemView.findViewById(R.id.tv); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int childAdapterPosition = rv.getChildAdapterPosition(view); Toast.makeText(co,arr.get(childAdapterPosition), Toast.LENGTH_SHORT).show(); } }); } } }
4.主布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="comqq.example.hasee.myapplication.MainActivity" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> </LinearLayout>
5.item布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
相关文章推荐
- 使用RecyclerView实现ListView,GridView效果
- RecyclerView的初步使用(1)----代替ListView实现图片列表
- ListView多图片下载以及RecyclerView代替ListView与GridView
- 踏平RecyclerView使用的各种坑,跟ListView和GridView说拜拜
- 使用recyclerview多条目加载代替listview okhttp请求网路 Glide加载图片
- Android开发技术研究--RecyclerView使用完全解析(一)(用RecyclerView代替ListView)
- 使用RecyclerView代替ExpandableListView实现多层级展开列表的方法。
- 使用RecyclerView实现GridView和ListView混排的效果
- Android开发技术研究--RecyclerView使用完全解析(二)(用RecyclerView代替ListView)
- 使用RecyclerView实现滑动添加、滑动删除,以及瀑布流、ListView、GridView的转换
- Android中Recyclerview使用1----实现ListView,GridView,瀑布流样式
- RecyclerView使用详解(代替ListView)
- Android RecyclerView之代替ListView与GridView
- ListView、GridView、RecyclerView的使用
- 使用RecyclerView实现ListView,GridView的效果(上下,左右滑动),拖拽与滑动删除
- RecyclerView使用详解一代替ListView(点击事件,添加头布局,上拉刷新下拉加载)
- Android中RecyclerView布局代替GridView实现类似支付宝的界面
- [Android]使用RecyclerView替代ListView(三)
- Kotlin使用(fragment的切换与listview、recyclerView的使用)
- RecyclerView的GridView和ListView的混排处理