1.CardView



布局


package com.example.materialtest;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.cardview.widget.CardView;import androidx.recyclerview.widget.RecyclerView;import com.bumptech.glide.Glide;import java.util.List;/*** FruitAdapter** @author lxl @date 2019/12/7 18:47* @version 1.0*/public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {private Context mContext;private List<Fruit> mFruitList;static class ViewHolder extends RecyclerView.ViewHolder {private CardView cardView;private ImageView fruitImage;private TextView fruitName;public ViewHolder(@NonNull View view) {super(view);cardView = (CardView) view;fruitImage = view.findViewById(R.id.fruit_image);fruitName = view.findViewById(R.id.fruit_name);}}public FruitAdapter(List<Fruit> mFruitList) {this.mFruitList = mFruitList;}@NonNull@Overridepublic FruitAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {if (mContext == null) {mContext = parent.getContext();}View view = LayoutInflater.from(mContext).inflate(R.layout.fruit_item, parent, false);return new ViewHolder(view);}@Overridepublic void onBindViewHolder(@NonNull FruitAdapter.ViewHolder holder, int position) {Fruit fruit = mFruitList.get(position);holder.fruitName.setText(fruit.getName());// 使用Glide加载图片Glide.with(mContext).load(fruit.getImageId()).into(holder.fruitImage);}@Overridepublic int getItemCount() {return mFruitList.size();}}



2.AppBarLayout








