TableLayout中的按钮在Android 1.6和2.1上裁剪(但不在1.5或2.2上)

时间:2010-08-09 01:30:22

标签: android tablelayout

我有4个按钮排列在2x2 TableLayout中。这些按钮每个都有一个左侧的图像和一些文本。模拟器中的按钮在1.5和2.2中显示正常,但在使用1.6测试时,右侧列中的两个按钮被裁剪,以便它们缺少右侧边缘(文本右侧的填充缺失并且按钮突然结束,角落而不是圆角)。 TableLayout有足够的空间扩展以适应按钮的整个宽度。这适用于所有屏幕尺寸。

布局看起来像这样,它本身出现在RelativeLayout中:

<TableLayout android:id="@+id/buttons"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerHorizontal="true"
             android:layout_alignParentTop="true"
             android:paddingTop="10dp">
  <TableRow>
    <Button android:id="@+id/button1"
            style="@style/LaunchButton"
            android:drawableLeft="@drawable/button1"
            android:text="@string/button1"/>
    <Button android:id="@+id/button2"
            style="@style/LaunchButton"
            android:drawableLeft="@drawable/button2"
            android:text="@string/button2"/>
  </TableRow>
  <TableRow>
    <Button android:id="@+id/button3"
            style="@style/LaunchButton"
            android:drawableLeft="@drawable/button3"
            android:text="@string/button3"/>
    <Button android:id="@+id/button4"
            style="@style/LaunchButton"
            android:drawableLeft="@drawable/button4"
            android:text="@string/button4"/>
  </TableRow>
</TableLayout>

按钮的样式如下:

<style name="LaunchButton">
  <item name="android:layout_width">wrap_content</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:gravity">fill_horizontal</item>
  <item name="android:textSize">24dp</item>
  <item name="android:textStyle">bold</item>
</style>

我假设这是一个特定于1.6的错误。还有其他人遇到过这个问题吗?有关解决方法的任何建议吗?

编辑:我有机会尝试使用Android 2.1(在模拟器和设备上),问题也在那里发生。所以1.5好,1.6差,2.1差,2.2好。

1 个答案:

答案 0 :(得分:1)

我在1.6和2.1上遇到了同样的问题,但在1.5和2.2上也没有遇到过。

我使用LineraLayout并设置其权重,并使用TableLayout跳过问题。

<LinearLayout
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout android:layout_width="fill_parent"
        android:layout_weight="1" android:layout_height="wrap_content"
        android:gravity="center">
        <ImageButton
            android:layout_width="wrap_content" android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_weight="1" android:layout_height="wrap_content"
        android:gravity="center">
        <ImageButton
            android:layout_width="wrap_content" android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_weight="1" android:layout_height="wrap_content"
        android:gravity="center">
        <ImageButton
            android:layout_width="wrap_content" android:layout_height="wrap_content" />
    </LinearLayout>