从Dialog中删除边框,填充

时间:2012-01-12 14:46:33

标签: android user-interface android-activity android-ui

我有一个以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>

我正试图摆脱它周围的边框和填充..我想填充屏幕的水平。没有灰色边框。 请帮忙 :) enter image description here

4 个答案:

答案 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); 而且您走的很好!