2025-07-03 00:58:12 今天世界杯

一,代码:

1,xml

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".activity.Recycle1Activity">

android:id="@+id/recyclerView"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

两类item:无图:

android:id="@+id/textItem"

android:layout_width="match_parent"

android:layout_height="60dp"

android:gravity="center_vertical"

android:padding="16dp"

android:textSize="18sp"/>

有图:

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:padding="10dp">

android:id="@+id/userImage"

android:background="#ffff00"

android:layout_width="160dp"

android:layout_height="160dp"

android:src="@drawable/ic_launcher_foreground" />

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:orientation="vertical"

android:paddingStart="16dp"

android:paddingEnd="16dp"

android:gravity="center_vertical">

android:id="@+id/userId"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="商品名"

android:textSize="18sp"

android:textColor="@android:color/black" />

android:id="@+id/userName"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="描述"

android:textSize="14sp"

android:textColor="@android:color/darker_gray" />

2,java

model:

package com.example.okdemo1.model;

public class UserListItemEntity {

private int id;

private String name;

private String image;

public UserListItemEntity(int id, String name, String image) {

this.id = id;

this.name = name;

this.image = image;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getImage() {

return image;

}

public void setImage(String image) {

this.image = image;

}

}

activity:

package com.example.okdemo1.activity;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

import androidx.recyclerview.widget.LinearLayoutManager;

import androidx.recyclerview.widget.RecyclerView;

import com.example.okdemo1.R;

import com.example.okdemo1.adapter.MyRecycleAdapter;

import com.example.okdemo1.model.UserListItemEntity;

import java.util.ArrayList;

import java.util.List;

public class Recycle1Activity extends AppCompatActivity {

private RecyclerView recyclerView;

private MyRecycleAdapter adapter;

private List userList;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_recycle1);

recyclerView = findViewById(R.id.recyclerView);

userList = new ArrayList<>();

// 添加测试数据

for (int i = 1; i <= 20; i++) {

String image = "";

if (i == 3) {

image="https://wx1.sinaimg.cn/mw690/9f519e8bgy1i1n60ny8bmj22yo1o0hdv.jpg";

} else if (i == 6) {

image="https://wx3.sinaimg.cn/mw690/005SZ2Zygy1i1n5h61b79j30xc0l8grq.jpg";

} else {

image="";

}

UserListItemEntity one = new UserListItemEntity(i,"第 " + i + " 项",image);

userList.add(one);

}

adapter = new MyRecycleAdapter(Recycle1Activity.this,userList);

recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 垂直列表

recyclerView.setAdapter(adapter);

}

}

adapter:

package com.example.okdemo1.adapter;

import androidx.recyclerview.widget.RecyclerView;

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.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;

import com.bumptech.glide.load.engine.DiskCacheStrategy;

import com.bumptech.glide.request.RequestOptions;

import com.example.okdemo1.R;

import com.example.okdemo1.model.UserListItemEntity;

import java.util.List;

public class MyRecycleAdapter extends RecyclerView.Adapter {

private Context context;

private static final int TYPE_TEXT = 0;

private static final int TYPE_IMAGE = 1;

private List dataList;

public MyRecycleAdapter(Context context,List dataList) {

this.dataList = dataList;

this.context = context;

}

@Override

public int getItemViewType(int position) {

UserListItemEntity one = dataList.get(position);

int id = one.getId();

System.out.println(id);

if (id == 3 || id == 6){

return TYPE_IMAGE;

} else {

return TYPE_TEXT;

}

}

@Override

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

if (viewType == TYPE_TEXT) {

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_text, parent, false);

return new TextViewHolder(view);

} else {

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_text_image, parent, false);

return new ImageViewHolder(view);

}

}

@Override

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

if (holder instanceof TextViewHolder) {

((TextViewHolder) holder).bind(this.context,(UserListItemEntity) dataList.get(position));

} else {

((ImageViewHolder) holder).bind(this.context,(UserListItemEntity) dataList.get(position));

}

}

@Override

public int getItemCount() {

return dataList.size();

}

}

// ViewHolder for text item

class TextViewHolder extends RecyclerView.ViewHolder {

private TextView textView;

public TextViewHolder(View itemView) {

super(itemView);

textView = itemView.findViewById(R.id.textItem);

}

public void bind(Context text,UserListItemEntity one) {

textView.setText(one.getName());

}

}

// ViewHolder for image item

class ImageViewHolder extends RecyclerView.ViewHolder {

private ImageView imageView;

private TextView nameView;

public ImageViewHolder(View itemView) {

super(itemView);

imageView = itemView.findViewById(R.id.userImage);

nameView = itemView.findViewById(R.id.userName);

}

public void bind(Context context,UserListItemEntity imageItem) {

nameView.setText(imageItem.getName());

//imageView.

RequestOptions options = RequestOptions.fitCenterTransform();

//设置图片

Glide.with(context)

.load(imageItem.getImage())

.apply(options)

.diskCacheStrategy(DiskCacheStrategy.ALL) // 缓存原始图片和转换后的图片到磁盘

.skipMemoryCache(false) // 不跳过内存缓存

.into(imageView);

}

}

二,测试效果: