如何使用RecylcerView创建两列?

时间:2017-03-12 19:36:21

标签: java android xml eclipse android-recyclerview

我是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_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background2"
    android:orientation="vertical"
    android:layout_marginTop="50dp">


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/button1"
                android:layout_weight = "1"
                android:layout_height="100dp"
                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_height="100dp"
                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_height="100dp"
                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_height="100dp"
                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_height="100dp"
                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_height="100dp"
                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 个答案:

答案 0 :(得分:1)

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

根据文档,您可以使用构造函数创建一个包含 N 列的新GridLayoutManager:new GridLayoutManager(context, N { {1}}