RecyclerView垂直列表显示示例,显示图片加文字。

1、RecyclerView.Adapter适配器

public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
    private Context mContext;
    private List<TitleBean> titleBeans;

    public ListAdapter() {
        titleBeans = new ArrayList<>();
    }

    public void setTitleBeans(List<TitleBean> titleBeans) {
        this.titleBeans = titleBeans;
    }

    @Override
    public void onViewRecycled(ViewHolder holder){
        holder.itemView.setOnLongClickListener(null);
        super.onViewRecycled(holder);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        mContext = parent.getContext();
        View view = LayoutInflater.from(mContext).inflate(R.layout.item,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        final TitleBean note = titleBeans.get(position);
        holder.itemView.setTag(note);
        holder.imageView2.setImageResource(note.getId());
        holder.textView2.setText(note.getContent());

    }

    @Override
    public int getItemCount() {
        //Log.i(TAG, "###getItemCount: ");
        if (titleBeans != null && titleBeans.size()>0){
            return titleBeans.size();
        }
        return 0;
    }

    public class ViewHolder extends RecyclerView.ViewHolder   {
        public ImageView imageView2;
        public TextView textView2;

        public ViewHolder(View view){
            super(view);
            imageView2 =  view.findViewById(R.id.imageView2);
            textView2 =  view.findViewById(R.id.textView2);
        }
    }
}

item布局文件

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/item_main_note"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="15dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:layout_marginTop="20dp"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="25dp"
            android:src="@drawable/imageview_style" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="15dp"
            android:layout_weight="1"
            android:text="极速减脂体验课"
            android:textColor="#102611"
            android:textSize="22sp" />
    </LinearLayout>

</androidx.appcompat.widget.LinearLayoutCompat>

2、recycleview布局xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="com.example.mmsx.HomeFragment">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

3、recycleview装载数据

public class MessageFragment extends Fragment {
    private List<TitleBean> list = new ArrayList<>();
    public MessageFragment() {
        list.add(new TitleBean(R.mipmap.banner1,"青菜"));
        list.add(new TitleBean(R.mipmap.banner2,"番薯"));
        list.add(new TitleBean(R.mipmap.banner3,"大米"));
        list.add(new TitleBean(R.mipmap.banner4,"稻谷"));
        list.add(new TitleBean(R.mipmap.banner1,"青菜"));
        list.add(new TitleBean(R.mipmap.banner2,"番薯"));
        list.add(new TitleBean(R.mipmap.banner3,"大米"));
        list.add(new TitleBean(R.mipmap.banner4,"稻谷"));
    }

    public static MessageFragment newInstance() {
        MessageFragment fragment = new MessageFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_message, container, false);
        RecyclerView recyclerView = view.findViewById(R.id.recyclerView);

        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);//竖向列表
        recyclerView.setLayoutManager(layoutManager);

        ListAdapter adapter = new ListAdapter();
        adapter.setTitleBeans(list);
        recyclerView.setAdapter(adapter);
        return view;
    }
}

4、运行界面

3d51cac5fb02451286607458f224016c.png

 

更多推荐