2010-08-09 48 views
1

我有4个按钮排列在2x2 TableLayout中。这些按钮每个都有左侧的图像和一些文字。这些按钮在模拟器中可以很好地显示1.5和2.2,但是当使用1.6进行测试时,右侧列中的两个按钮会被裁剪掉,以致它们缺少右手边缘(缺少文本右侧的填充并且按钮突然结束,而不是圆角)。 TableLayout有足够的空间扩展以适应按钮的全部宽度。这发生在所有屏幕尺寸上。TableLayout中的按钮在Android 1.6和2.1(但不是1.5或2.2)上裁剪

布局看起来像这样与自身出现的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好。

+0

最简单的变通现在是指定一个固定的按钮的宽度,而不是将其设置为“WRAP_CONTENT”,让布局数字出来。 – 2010-08-09 14:20:16

回答

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> 

相关问题