1

2x2のTableLayoutに配置された4つのボタンがあります。これらのボタンにはそれぞれ、左側に画像といくつかのテキストがあります。ボタンは、1.5および2.2のエミュレーターでは正常に表示されますが、1.6でテストすると、右側の列の2つのボタンがトリミングされ、右端が欠落します(テキストの右側のパディングが欠落し、ボタンが欠落します)丸みを帯びた角ではなく、四角い角で突然終了します)。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良い。

4

1 に答える 1

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>

于 2010-08-30T02:27:31.480 に答える