1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="6dp"
android:weightSum="1.0" >

<Button
    android:id="@+id/btnCreateNewMonth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical|center"
    android:layout_weight="0.5"
    android:onClick="btnCreateNewMonth_clickHandler"
    android:paddingBottom="5dp"
    android:text="@string/btn_create_new_month" />

<Button
    android:id="@+id/btnLoadExistingMonth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical|center"
    android:layout_weight="0.5"
    android:onClick="btnLoadExistingMonth_clickHandler"
    android:text="@string/btn_load_existing_month" />

   </LinearLayout>

所有边的填充应为 6dp。但是在顶部,在应用标题和布局之间有一个较小的填充?!那有什么解决办法??

谢谢。

4

1 回答 1

1

问题不在于填充,

如果深入了解布局,您会发现按钮占用区域和布局区域的差异。

  1. Button 的背景源没有完全占据右、左、下角的空间。

  2. 但是 Button 的 Background 源已经被覆盖并完全占据在顶部。

  3. 请注意,Button 的背景源是具有透明背景的 9 个补丁图像。

  4. 在这种情况下,例如如果按钮的背景源未占用的间隙为2dp,则表示,

    Right , Left, Bottom 会有一个额外的 2dp 空间。但不在顶部。

    因此,使用 6dp 的填充,您将获得 2dp 的额外背景可见性,用于右、左、下角的两个按钮。

因此,如果您的填充值是 6dp ,那么您的布局背景可见性将在右、左、下角为 8dp,在顶部为 6dp。

这是实际的问题。

  1. 如果更改按钮的背景颜色,您可以看到所有 4 个角的填充值均匀。

  2. 如果您要为按钮创建图像背景,那么它应该同样被创建,这与 android 默认按钮背景不同。

所以解决方案是,您可以为按钮创建渐变背景,也可以为按钮创建新的图像文件。

希望你能得到它,它将对你有用。

于 2012-11-02T13:45:52.550 回答