GridLayout和框使用权重居中

时间:2015-10-12 02:49:20

标签: android android-layout android-gridlayout

我正在尝试使用GridLayout在中心生成4个相同的框,但我得到以下内容:

enter image description here

我一定是做错了。我的代码不应该至少填满屏幕吗?这是我的代码:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:columnCount="8"
            android:rowCount="8">

    <Button
            android:layout_columnSpan="4"
            android:layout_rowSpan="4"
            android:layout_rowWeight="4"
            android:layout_columnWeight="4"
            android:text="1" />

    <Button
            android:layout_columnSpan="4"
            android:layout_rowSpan="4"
            android:layout_rowWeight="4"
            android:layout_columnWeight="4"
            android:text="2" />

    <Button
            android:layout_columnSpan="4"
            android:layout_rowSpan="4"
            android:layout_rowWeight="4"
            android:layout_columnWeight="4"
            android:text="3" />

    <Button
            android:layout_columnSpan="4"
            android:layout_rowSpan="4"
            android:layout_rowWeight="4"
            android:layout_columnWeight="4"
            android:text="4" />
</GridLayout>

有谁知道可能缺少什么?

由于

2 个答案:

答案 0 :(得分:0)

PercentRelativeLayout很好地解决了这个问题:

<android.support.percent.PercentRelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/button_s"
                app:layout_widthPercent="30%"
                app:layout_heightPercent="30%"
                app:layout_marginTopPercent="10%"
                app:layout_marginLeftPercent="15%"
                app:layout_marginRightPercent="5%"/>
        <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/button_c"
                app:layout_widthPercent="30%"
                app:layout_heightPercent="30%"
                app:layout_marginTopPercent="10%"
                app:layout_marginLeftPercent="5%"
                app:layout_marginRightPercent="15%"
                android:layout_toRightOf="@id/button_s"/>

        <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/button_r"
                app:layout_widthPercent="30%"
                app:layout_heightPercent="30%"
                app:layout_marginTopPercent="10%"
                app:layout_marginLeftPercent="15%"
                app:layout_marginRightPercent="5%"
                android:layout_below="@id/button_s"/>
        <Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_widthPercent="30%"
                app:layout_heightPercent="30%"
                app:layout_marginTopPercent="10%"
                app:layout_marginLeftPercent="5%"
                app:layout_marginRightPercent="15%"
                android:layout_toRightOf="@id/button_r"
                android:layout_below="@id/button_c"/>

</android.support.percent.PercentRelativeLayout>

enter image description here

答案 1 :(得分:0)

取决于您想要实现的目标:

  • 将按钮放在单元格的中心,添加

    android:layout_gravity="center"
    
  • 填写可用空间,添加

    android:layout_gravity="fill"
    

有关详细信息,请参阅android:layout_gravity。您可以将其与ViewGroup.MarginLayoutParams结合使用。