我在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>