代码:
<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="<-" >
</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看起来像这样 Holo看起来像这样
我不想(或者更确切地说,不能)使用Holo,因为我已经在使用需要Theme.Appcompat主题的新ActionBarActivity。
我更有兴趣知道为什么这是GridLayout的行为,而不是Holo的可能解决方法。
其他信息:
在Holo主题中,当我增加GridLayout的columnCount时,单元格宽度会正确调整。在其他主题中,它们只是从屏幕上延伸出来。
我已经在实际设备上进行了测试。看起来与预览模式完全相同。
答案 0 :(得分:-2)
将TableLayout
与TableRow
用于您的布局。它很棒!