代码之家  ›  专栏  ›  技术社区  ›  Dan Dyer

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

  •  1
  • Dan Dyer  · 技术社区  · 14 年前

    我有四个按钮安排在一个2x2的表格布局。这些按钮的左边各有一个图像和一些文本。对于1.5和2.2,按钮在emulator中显示得很好,但是当使用1.6进行测试时,右边列中的两个按钮被裁剪,因此它们缺少右边的边(文本右侧的填充缺失,按钮以正方形而不是圆形的角突然结束)。TableLayout有足够的空间来扩展以容纳按钮的整个宽度。这适用于所有屏幕尺寸。

    <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特定的bug。还有谁遇到过这个问题吗?对解决办法有什么建议吗?

    编辑:

    1 回复  |  直到 14 年前
        1
  •  1
  •   shiami    14 年前

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