1.CardView

image.png

image.png

image.png

布局
image.png

image.png

image.png

  1. package com.example.materialtest;
  2. import android.content.Context;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.ImageView;
  7. import android.widget.TextView;
  8. import androidx.annotation.NonNull;
  9. import androidx.cardview.widget.CardView;
  10. import androidx.recyclerview.widget.RecyclerView;
  11. import com.bumptech.glide.Glide;
  12. import java.util.List;
  13. /**
  14. * FruitAdapter
  15. *
  16. * @author lxl @date 2019/12/7 18:47
  17. * @version 1.0
  18. */
  19. public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
  20. private Context mContext;
  21. private List<Fruit> mFruitList;
  22. static class ViewHolder extends RecyclerView.ViewHolder {
  23. private CardView cardView;
  24. private ImageView fruitImage;
  25. private TextView fruitName;
  26. public ViewHolder(@NonNull View view) {
  27. super(view);
  28. cardView = (CardView) view;
  29. fruitImage = view.findViewById(R.id.fruit_image);
  30. fruitName = view.findViewById(R.id.fruit_name);
  31. }
  32. }
  33. public FruitAdapter(List<Fruit> mFruitList) {
  34. this.mFruitList = mFruitList;
  35. }
  36. @NonNull
  37. @Override
  38. public FruitAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  39. if (mContext == null) {
  40. mContext = parent.getContext();
  41. }
  42. View view = LayoutInflater.from(mContext).inflate(R.layout.fruit_item, parent, false);
  43. return new ViewHolder(view);
  44. }
  45. @Override
  46. public void onBindViewHolder(@NonNull FruitAdapter.ViewHolder holder, int position) {
  47. Fruit fruit = mFruitList.get(position);
  48. holder.fruitName.setText(fruit.getName());
  49. // 使用Glide加载图片
  50. Glide.with(mContext).load(fruit.getImageId()).into(holder.fruitImage);
  51. }
  52. @Override
  53. public int getItemCount() {
  54. return mFruitList.size();
  55. }
  56. }

image.png

image.png

image.png

2.AppBarLayout

image.png

image.png
image.png

image.png
image.png
image.png
image.png
image.png