GridLayout columnCount在非Holo主题中不起作用

时间:2015-02-17 06:53:28

标签: android grid-layout

代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.calculatorsample.MainActivity$PlaceholderFragment" >

<EditText
    style="@android:style/TextAppearance.DeviceDefault.Large"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:enabled="false"
    android:padding="@dimen/activity_vertical_margin" />

<GridLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:columnCount="5"
    android:orientation="horizontal" >

    <Button android:text="&lt;-" >
    </Button>

    <Button android:text="CE" >
    </Button>

    <Button android:text="C" >
    </Button>

    <Button android:text="+/-" >
    </Button>

    <Button android:text="√" >
    </Button>

    <Button android:text="7" />

    <Button android:text="8" />

    <Button android:text="9" />

    <Button android:text="/" />

    <Button android:text="%" />

    <Button android:text="4" />

    <Button android:text="5" />

    <Button android:text="6" />

    <Button android:text="*" />

    <Button android:text="1/x" />

    <Button android:text="1" />

    <Button android:text="2" />

    <Button android:text="3" />

    <Button android:text="-" />

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

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

    <Button android:text="." />

    <Button android:text="+" />
</GridLayout>

当主题在实际设备上设置为Holo(我在Nexus 5上设置但我猜测这不是设备特定的问题)和eclipse预览时,这种方法很有效。但是当我将活动的主题设置为其他任何东西时 - 无论是在eclipse预览还是在清单上,它看起来都很糟糕。屏幕截图如下:

非Holo看起来像这样 Non-holo Holo看起来像这样 Holo

我不想(或者更确切地说,不能)使用Holo,因为我已经在使用需要Theme.Appcompat主题的新ActionBarActivity。

我更有兴趣知道为什么这是GridLayout的行为,而不是Holo的可能解决方法。

其他信息:

在Holo主题中,当我增加GridLayout的columnCount时,单元格宽度会正确调整。在其他主题中,它们只是从屏幕上延伸出来。

我已经在实际设备上进行了测试。看起来与预览模式完全相同。

1 个答案:

答案 0 :(得分:-2)

TableLayoutTableRow用于您的布局。它很棒!