GridLayout rowSpan意外行为。这个怎么运作?

时间:2014-09-08 15:13:48

标签: android gridview grid-layout

我对gridLayout有以下设计:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:columnCount="3"
    android:orientation="horizontal" >

    <Button android:text="1" />

    <Button
        android:layout_gravity="fill"
        android:layout_rowSpan="2"
        android:text="2" />

    <Button
        android:layout_gravity="fill"
        android:layout_rowSpan="3"
        android:text="3" />

    <Button
        android:layout_gravity="fill"
        android:layout_rowSpan="2"
        android:text="4" />

    <Button
        android:text="5" />

    <Button
        android:text="6" />

    <Button
        android:text="7" />

    <Button
        android:text="8" />

    <Button
        android:text="9" />

</GridLayout>

这就是我得到的:

got design for gridview

但这就是我想要的:

enter image description here

可能会发生什么?这是为什么?我可以用gridLayout做我想做的事吗? (这只是学习如何使用这种布局的一个例子)

1 个答案:

答案 0 :(得分:0)

问题是GridLayout无法定义第二行的高度;它最终是高度0dp。您可以通过添加一列视图来解决此问题,每列视图高一行android:layout_width="0dp",高度与您的一个单行视图相同,且无重力。它们不会占用布局的任何可见部分,但它们会强制每行的行具有非零高度。