RecyclerView使用

RecyclerView使用

记录下RecyclerView的用法:

  • 添加布局
  • RecyclerView子项布局
  • 适配器RecyclerView Adapter
  • *绑定

添加布局

直接添加 RecyclerView标签

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycle"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v7.widget.RecyclerView>

</LinearLayout>

RecyclerView子项布局

新建一个布局文件 gvitem,用于设计每个子项的布局,这里添加一个图片和文本。

<ImageView
            android:id="@+id/iv"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_margin="5dp"
            android:scaleType="centerInside" />

            <TextView
            android:id="@+id/tv"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:layout_marginStart="110dp"
            android:textColor="@color/textColor"
            android:textSize="13sp" />

适配器RecyclerView Adapter

新建一个适配器类,继承RecyclerView.Adapter,具体实现:

public class AnimalAdapter extends RecyclerView.Adapter <AnimalAdapter.viewHolder>{

    private List<Animal> list;//Animal为需要放在RecyclerView中的实体类
    @Override  //实现RecyclerView.Adapter中的方法,返回内部类viewHolder对象
    public viewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.gvitem,parent,false);
        viewHolder holder=new viewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(viewHolder holder, int position) {
        holder.animalName.setText(list.get(position).getAnimalname().toString());
        holder.animalImage.setImageResource(list.get(position).getImageId());
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
//viewHolder内部类
    static class viewHolder extends RecyclerView.ViewHolder{

         TextView animalName;
         ImageView animalImage;

        public viewHolder(View itemView) {
            super(itemView);
            animalName=itemView.findViewById(R.id.tv);
            animalImage=itemView.findViewById(R.id.iv);


        }
    }

    public AnimalAdapter(List<Animal> list) {
        this.list = list;
    }
}

绑定适配器

Animal实体类

public class Animal {

    private String animalname;
    private int ImageId;
    public Animal(String animalname,int ImageId) {
        this.animalname=animalname;
        this.ImageId=ImageId;
    }

    public String getAnimalname() {
        return animalname;
    }

    public int getImageId() {
        return ImageId;
    }

}

在Activity中将RecyclerView与适配器绑定

public class MainActivity extends AppCompatActivity {

    Animal animal;
    List<Animal> animalList=new ArrayList<>();
    @BindView(R.id.recycle)
    RecyclerView recyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        String  name[]={"老鼠","奶牛","瓢虫","苍蝇","兔子","大象","公鸡"};
        int Image[]={R.mipmap.first,R.mipmap.second,R.mipmap.third,R.mipmap.fourth,R.mipmap.fith
        ,R.mipmap.sith,R.mipmap.seveth};

        for (int i=0;i<Image.length;i++)
        {
            animal=new Animal(name[i],Image[i]);
            animalList.add(animal);

        }
        LinearLayoutManager linearLayout=new LinearLayoutManager(this);
        /*若要实现横向滚动则添加linearLayout.setOrientation(LinearLayoutManager.HORIZONTAL);*/
        recyclerView.setLayoutManager(linearLayout);

        AnimalAdapter adapter=new AnimalAdapter(animalList);
        recyclerView.setAdapter(adapter);
    }
}

最终效果:
纵向

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值