边距不适用于对话框,我想顶层窗口视图不是支持边距的布局类型。我看过帖子说,当定义为Dialog的样式(而不是顶级视图元素)时,边距会工作,但这似乎也不工作。
解决这个问题需要做的是在你的Dialog背景中使用一个插图,并调整任何填充以考虑背景的额外插入。在下面的例子中,我只需要设置left&右边距。
对话框背景drawable:
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/dialog_background"
android:insetRight="10dp"
android:insetLeft="10dp">
对话框主视图:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:background="@drawable/dialog_background_inset">
您可能还需要将对话框本身的背景颜色设置为透明。添加颜色资源,如:
#00000000
并将对话框的窗口背景颜色设置为这样(注意:你不能直接指定颜色,eclipse会报错)
@color/transparent
true
true
这个样式应该作为主题参数传递给你的Dialog的构造函数,就像new Dialog(context,R.style.Dialog)一样。