Java 让它成为android中的GridLayout方式

Java 让它成为android中的GridLayout方式,java,android,grid-layout,Java,Android,Grid Layout,你好,我有这个屏幕 我用这个密码做的 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.example.test.project" android:layout_width="match

你好,我有这个屏幕

我用这个密码做的

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/com.example.test.project"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="1" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="2" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="3" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="4" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="5" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="6" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="7" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="8" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="9" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="10" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="11" />

            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:layout_gravity="fill_horizontal"
                android:text="12" />
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>


有没有办法使用
GridLayout
,我曾尝试使用GridLayout,但它只能在一行中使用2个按钮,但如果使用3个按钮则无法使用,我在答案中使用了代码

您必须更改GridLayout android:rowCount=“3”。试试这个


编辑:
读这篇文章,

你不会喜欢我的答案,但简单地说,你不能。GridLayout不支持任何类型的布局“权重”。对于文本,您通常可以使用app:layout\u重力选项,但对于按钮之类的项目,这将不起作用

最好的选择是在GridLayout内部使用线性布局。与现有布局相比并没有多大改进,但至少可以摆脱现有的第一个线性布局。您所需要的只是顶部的GridLayout,然后每行按钮有一个线性布局。这将提高性能


“模拟其他布局的功能”部分提示如何在GridLayout中使用LinearLayout来实现此方案是更好的选择。

它将使每3个文本视图成为一行,但它们不会填充父视图的整个宽度@user4o01检查此链接可能会有所帮助。。我的朋友,这不会是关于GridView而不是GridLayoutGridLayout的,如果您指定android,GridLayout将在一行中使用3个按钮:columnCount=“3”您不能,但尝试使用表布局,非常类似。
<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="3"
    android:rowCount="3" >

    <TextView
        android:text="1,1" />

    <TextView
        android:text="1,2" />

    <TextView
        android:text="1,3" />


    <TextView
        android:text="2,1" />

    <TextView
        android:text="2,2" />

    <TextView
        android:text="2,3" />

    <TextView
        android:text="3,1" />

    <TextView
        android:text="3,2" />

    <TextView
        android:text="3,3" />


</GridLayout>