<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。但是在顶部,在应用程序标题和布局之间有一个较小的填充?!解决方案是什么??
谢谢。
最佳答案
问题不在于填充,
如果深入观察布局,您会发现按钮占用区域和布局区域的差异。
Button 的背景源未完全占据右、左、下角的空间。
但是Button的Background源已经被覆盖,完全占据了顶部。
请注意,按钮的背景源是具有透明背景的 9 补丁图像。
在这种情况下,例如如果按钮的背景源未占用的Gap是2dp意味着,
Right , Left, Bottom 会多出2dp的空格。但不在顶部。
因此,使用 6dp 的填充,您将在右、左、下角的两个按钮获得额外的 2dp 背景可见度。
因此,如果您的内边距值为 6dp,则您的布局背景可见性在右角、左角、底角为 8dp,在顶部为 6dp。
这才是真正的问题。
如果您更改按钮的背景颜色,您可以看到所有 4 个角的均匀填充值。
如果您要为按钮创建图像背景,那么应该同样创建它,这与 android 默认按钮背景不同。
所以解决方案是,您可以为您的按钮创建一个渐变背景,或者您可以为您的按钮创建一个新的图像文件。
希望你能理解它,它会对你有用。
关于android - 布局和应用程序标题之间的填充不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195658/