下面是一个示例代码,演示如何在Android中使用RecyclerView和GridLayoutManager来实现在几行上并排显示动态列表的方框:
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private BoxAdapter boxAdapter;
private List boxList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
// 初始化方框数据
boxList = new ArrayList<>();
boxList.add(new Box("方框1", R.drawable.box1));
boxList.add(new Box("方框2", R.drawable.box2));
boxList.add(new Box("方框3", R.drawable.box3));
boxList.add(new Box("方框4", R.drawable.box4));
boxList.add(new Box("方框5", R.drawable.box5));
boxList.add(new Box("方框6", R.drawable.box6));
// 创建适配器并将数据传递给它
boxAdapter = new BoxAdapter(boxList);
recyclerView.setAdapter(boxAdapter);
}
private static class Box {
private String name;
private int imageRes;
public Box(String name, int imageRes) {
this.name = name;
this.imageRes = imageRes;
}
public String getName() {
return name;
}
public int getImageRes() {
return imageRes;
}
}
private class BoxAdapter extends RecyclerView.Adapter {
private List boxList;
public BoxAdapter(List boxList) {
this.boxList = boxList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_box, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Box box = boxList.get(position);
holder.nameTextView.setText(box.getName());
holder.imageView.setImageResource(box.getImageRes());
}
@Override
public int getItemCount() {
return boxList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public TextView nameTextView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
nameTextView = itemView.findViewById(R.id.nameTextView);
}
}
}
}
请注意,上述代码假设您已经在布局文件中添加了一个RecyclerView(使用id为recyclerView
)和一个名为item_box.xml
的布局文件,用于表示每个方框的项。
item_box.xml的示例内容如下:
在上述示例中,我们使用了RecyclerView、GridLayoutManager、自定义适配器和ViewHolder来实现在几行上并排显示动态列表的方框。