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

我在2×2 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.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>
上一篇:android-如何在TableLayout中单击特定的TableRow


下一篇:android – 在TableRow下设置TextView的layout_weight