RecyclerView实现自定义布局.一

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.ViewHolder
onCreateViewHolder方法中需要拿到布局文件,根据布局文件创建一个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绑定.

好的,收工。







1111




你可能感兴趣的:(Android基础)