RecyclerView
这东西可厉害了,不仅可以实现ListView和ViewPager的大部分功能,而且使用起来更容易,更自定义,视觉效果也更多样化,今儿主要说三个有关的标签:
LinearLayoutManager(线性排布,类似于ListAdapter);
GridLayoutManager(可以将多个layout放在一个布局中);
StaggeredGridLayoutManager(俗称的瀑布流);
具体步骤如下:
1.首先,要导一个RecyclerView包,具体两个步骤之前说过
2.然后,在布局文件中添加一个recyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recyclerView"
>
3.创建一个自定义布局,,用于给每个Item布局,这个没啥说的
4.声明属性,并与布局文件的控件进行绑定,常识
在oncreate中,要设置布局管理器(*****Manager)模式!
这里是设置界面中主要工具,上面三个属性标签就是在这里进行使用
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));GridLayoutManager参数第一个表示上下文,第二个表示在main.xml中的排列行数
StaggeredGridLayoutManager第一个参数是列数,第二个参数是设置水平亦或是其他方式排列
之后,需要class个适配器,用来实现一些一部分方法
class Myadapter extends RecyclerView.Adapter
在适配器中,造个ViewHolder用来存放并声明部分id
class MyViewHolder extends RecyclerView.ViewHolderonCreateViewHolder方法中需要拿到布局文件,根据布局文件创建一个ViewHolder,返回ViewHolder
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null);当有数据传进来时,需要再onBindViewHolder方法中获取数据,并设置到桌面上
public void onBindViewHolder(MyViewHolder holder, int position) { int image= (int) mlist.get(position).get("image"); holder.imageView.setImageResource(image);当然,还得用getItemCount获得返回数据的个数
数据传入需要造个createData()方法,
实现将数据成对放入List里。
最后,将Adapter创建出来,
绑定将recyclerVIew.和adapter绑定.
好的,收工。