我有一个以Theme.Transparent为主题的活动:
<style name="Theme.Transparent" parent="android:Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">false</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:gravity">top</item>
</style>
我正试图摆脱它周围的边框和填充..我想填充屏幕的水平。没有灰色边框。 请帮忙 :)
答案 0 :(得分:78)
请务必创建引用自定义主题的Dialog:
Dialog dialog = new Dialog(this, R.style.MyDialogTheme);
您的自定义主题需要填充屏幕并停用几个Android framework defaults:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyDialogTheme" parent="android:Theme.Dialog">
<!-- Fill the screen -->
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<!-- No backgrounds, titles or window float -->
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<!-- Just to prove it's working -->
<item name="android:background">#ff0000</item>
</style>
</resources>
答案 1 :(得分:13)
与上面相同,但是在代码中而不是在xml中为我工作。
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
答案 2 :(得分:5)
设置宽度和高度以匹配父容器。
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams wmlp = dialog.getWindow()
.getAttributes();
wmlp.width = android.view.WindowManager.LayoutParams.MATCH_PARENT;
wmlp.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT;
答案 3 :(得分:0)
以下内容非常适合我。它使我有一个全角对话框(不使用填充填充屏幕的宽度),但用wrap_content表示高度,并且保留了我在构建器中所做的所有其他样式:
ax1.set_xticklabels([d.date() for d in dates])
背景是必需的,否则会做奇怪的重复操作,但只需将其设置为您希望对话框背景为的颜色即可。需要WindowBackground和WindowIsFloating才能正确包装大小。
将主题添加到构建器中,如下所示:
builder =新的AlertDialog.Builder(_context,R.style.DialogTheme); 而且您走的很好!