убрать границу, отступы из диалога - PullRequest
24 голосов
/ 12 января 2012

У меня есть действие с темой 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 ]

78 голосов
/ 16 января 2012

Обязательно создайте диалог, ссылаясь на вашу пользовательскую тему:

Dialog dialog = new Dialog(this, R.style.MyDialogTheme);

Ваша пользовательская тема должна заполнить экран и отключить пару настроек Android по умолчанию :

<?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>
13 голосов
/ 13 мая 2014

То же, что и выше, но для меня это сработало в коде, а не в xml.

    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
5 голосов
/ 02 декабря 2015

Установить ширину и высоту в соответствии с родительским контейнером.

    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;
0 голосов
/ 14 августа 2018

Следующее прекрасно работает для меня.Это позволяет мне иметь диалоговое окно полной ширины (заполняет ширину экрана без отступов), но с wrap_content для высоты, и оно сохраняет все мои другие стили, которые я делаю в моем конструкторе:

<item name="windowMinWidthMajor">100%</item>
<item name="windowMinWidthMinor">100%</item>

<item name="android:windowBackground">@null</item>
<item name="android:windowIsFloating">true</item>

<item name="android:background">#ffffff</item>

Фон необходим, иначе он делает странные повторяющиеся вещи, но просто установите его в цвет, который вы хотите, чтобы фон вашего диалога был.WindowBackground и WindowIsFloating необходимы для правильного переноса размера.

Добавьте вашу тему в ваш конструктор следующим образом:

builder = new AlertDialog.Builder (_context, R.style.DialogTheme);и ты в порядке!

...