RecyclerView实现横向滚动

布局文件

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".RecyclerViewActivity">
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="8dp"/>

</LinearLayout>

Item

    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="5dp">
    <ImageView
        android:id="@+id/iv_recyclerview_imag"
        android:layout_width="wrap_content"
        android:layout_height="100dp" />
    <TextView
        android:id="@+id/tv_recyclerview_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="老虎"
        android:textSize="17sp"
        android:layout_gravity="center"
        android:textStyle="bold"
        android:padding="3dp"/>

</LinearLayout>

适配器

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
    private List<Animal> animalList;
    private int resource;

    public RecyclerViewAdapter(List<Animal> animalList, int resource) {
        this.animalList = animalList;
        this.resource = resource;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(resource,parent,
                false);
        ViewHolder holder = new ViewHolder(itemView);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Animal animal = animalList.get(position);
        holder.animalImag.setImageResource(animal.getImageId());
        holder.animalName.setText(animal.getName());

    }

    @Override
    public int getItemCount() {
        return animalList.size();
    }

    static class ViewHolder extends RecyclerView.ViewHolder{
         ImageView animalImag;
         TextView animalName;
         public ViewHolder(View itemView){
             super(itemView);
             animalImag = itemView.findViewById(R.id.iv_recyclerview_imag);
             animalName = itemView.findViewById(R.id.tv_recyclerview_name);
         }
     }
}

核心代码

public class RecyclerViewActivity extends AppCompatActivity {
    private List<Animal> animalList = new ArrayList<>();
    private RecyclerView recyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recycler_view);
        recyclerView = findViewById(R.id.recyclerView_view);
        initAnimals();
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        recyclerView.setLayoutManager(linearLayoutManager);
        RecyclerViewAdapter adapter = new RecyclerViewAdapter(animalList,R.layout.recyclerview_item);
        recyclerView.setAdapter(adapter);
    }
    //初始化动物数据
    private void initAnimals() {
            Animal daxaing = new Animal("大象", R.drawable.animal_one);
            animalList.add(daxaing);
            Animal shizi = new Animal( "袋鼠", R.drawable.animal_two);
            animalList.add(shizi);
            Animal daishu = new Animal("二哈", R.drawable.animal_three);
            animalList.add(daishu);
            Animal laohu = new Animal("狮子", R.drawable.animal_four);
            animalList.add(laohu);
            Animal zhu = new Animal("猪", R.drawable.animal_five);
            animalList.add(zhu);
            Animal songshu = new Animal("猴子", R.drawable.animal_six);
            animalList.add(songshu);
            Animal baozi = new Animal("豹子", R.drawable.animal_seven);
            animalList.add(baozi);
            Animal shayu = new Animal("鲨鱼", R.drawable.animal_eight);
            animalList.add(shayu);
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_50506453/article/details/111941344