使用 recyclerview 实现一个竖直的有两行的列表
时间: 2024-05-01 21:23:09 浏览: 105
Android 使用自定义RecyclerView控件实现Gallery效果
要实现一个竖直的有两行的列表,可以使用 RecyclerView 和 GridLayoutManager。
首先,在 XML 布局文件中添加一个 RecyclerView:
```xml
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:clipToPadding="false"
android:background="#FFFFFF"/>
```
然后,在代码中设置 RecyclerView 的 LayoutManager:
```java
RecyclerView recyclerView = findViewById(R.id.recyclerview);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
```
这里使用 GridLayoutManager,并将列数设置为 2。接下来,创建 Adapter 和 ViewHolder:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<String> mData;
public MyAdapter(List<String> data) {
mData = data;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(mData.get(position));
}
@Override
public int getItemCount() {
return mData.size();
}
static class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textview);
}
}
}
```
这里的 Adapter 中使用了一个简单的字符串列表作为数据源。ViewHolder 中包含一个 TextView,用于显示文本。最后,创建一个 item_layout.xml 文件,用于定义每个列表项的布局:
```xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textview1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:textColor="#000000"
android:padding="8dp"/>
<TextView
android:id="@+id/textview2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:textColor="#000000"
android:padding="8dp"/>
</LinearLayout>
```
这里使用了一个 LinearLayout,包含两个 TextView,用于显示文本。每个 TextView 的 layout_weight 属性都设置为 1,以便将宽度平均分配给两个 TextView。
最后,在代码中设置 Adapter:
```java
List<String> data = new ArrayList<>();
data.add("Item 1");
data.add("Item 2");
data.add("Item 3");
data.add("Item 4");
data.add("Item 5");
MyAdapter adapter = new MyAdapter(data);
recyclerView.setAdapter(adapter);
```
这里创建一个包含五个字符串的列表,并将其传递给 Adapter。最后,将 Adapter 设置给 RecyclerView,列表就可以显示出来了。
阅读全文