填充在布局和应用标题之间是不同的

时间:2012-11-02 12:54:32

标签: android layout padding title

<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。但在顶部,在应用程序标题和布局之间有一个较小的填充?!那是什么解决方案?

感谢。

1 个答案:

答案 0 :(得分:1)

问题不在于填充,

如果仔细观察布局,可以看到按钮占用区域和布局区域的区别。

  1. Button的背景源未完全占据右,左,下角的空格。

  2. 但Button的背景资源已被覆盖并完全占据顶部。

  3. 请注意,按钮的背景源是带有透明背景的9补丁图像。

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

    右,左,下将有额外的2dp空格。但不是在Top。

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

  5. 因此,如果您的填充值为6dp,那么您的布局背景可见性将在右侧,左侧,底部角落为8dp,顶部为6dp。

    这是实际问题。

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

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

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

      希望你能得到它,这对你来说很有用。