如何使用 RecyclerView 制作两列?

Posted

技术标签:

【中文标题】如何使用 RecyclerView 制作两列?【英文标题】:How can I make two columns with a RecylcerView? 【发布时间】:2017-08-02 18:57:46 【问题描述】:

我是 android 编程新手。 我创建了一个音板,如下所示: https://gyazo.com/2a08bcd731fb1cfeb07e72f75bc05e7e

但我不明白如何使用RecyclerView 做到这一点。 这是 2 列只有 3 行的代码(通常有 200 行):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_
    android:background="@drawable/background2"
    android:orientation="vertical"
    android:layout_marginTop="50dp">


    <ScrollView
        android:layout_
        android:layout_>

        <GridLayout
            android:layout_
            android:layout_>

            <Button
                android:id="@+id/button1"
                android:layout_weight = "1"
                android:layout_
                android:layout_column="0"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="Button1"
                android:padding="3dp"
                android:text="Button1"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/Button2"
                android:layout_weight = "1"
                android:layout_
                android:layout_column="0"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"                       
                android:background="@drawable/mybutton"
                android:onClick="Button2"
                android:padding="5dp"
                android:text="Button2"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/Button3"
                android:layout_weight = "1"
                android:layout_
                android:layout_column="0"
                android:layout_column="1"
                android:layout_row="1"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="Button3"
                android:padding="5dp"
                android:text="Button3"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/Button4"
                android:layout_weight = "1"
                android:layout_
                android:layout_column="0"
                android:layout_column="0"
                android:layout_row="1"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="Button3"
                android:padding="5dp"
                android:text="Button4"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/Button5"
                android:layout_weight = "1"
                android:layout_
                android:layout_column="0"
                android:layout_column="0"
                android:layout_row="2"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="Button5"
                android:padding="5dp"
                android:text="Button5"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/Button6"
                android:layout_weight = "1"
                android:layout_
                android:layout_column="0"
                android:layout_column="1"
                android:layout_row="2"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="Button6"
                android:padding="5dp"
                android:text="Button6"
                android:textColor="#ffffff"
                android:textSize="20dp" />

    </GridLayout>

</ScrollView>

如何使用RecyclerView 和适配器来做到这一点?我读了很多教程,但我不明白。如何制作 2 列?是否有一个很好的教程来解释这种情况? 或者有人可以向我解释吗? 声音不会从数据库中取出。

【问题讨论】:

【参考方案1】:

使用 RecyclerView,视图的元素根据您连接到 RecyclerView 实例的 LayoutManager 进行布局。如果您希望将元素布置在 2 列网格中,可以使用 GridLayoutManager

根据文档,您可以使用构造函数创建具有 N 列的新 GridLayoutManager:new GridLayoutManager(context,N);

【讨论】:

以上是关于如何使用 RecyclerView 制作两列?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio CardView 有两列宽度相等

如何使用 re.split 在 python 中拆分两列从 CSV 中查找字符串值

如何使用不同类型的项目制作 RecyclerView? [复制]

我如何使用来自firebase的数据制作recyclerview,并有意图地点击

如何使用 RecyclerView 制作具有相同宽度行的列表?

如何将 videoView 与 imageView 和 recyclerView 一起制作动画?