Подтвердить что ты не робот

Вызов диалогового окна Android без его исчезновения

У меня есть это приятное диалоговое представление. Я установил свой класс UserInputDialog:

    <LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

        <TextView
        android:id="@+id/nameMessage"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="What is your name Captain?"
        >
        </TextView>
        <EditText
        android:id="@+id/nameEditText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        >
        </EditText>
    <LinearLayout android:id="@+id/LinearLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal">
    <Button
        android:id="@+id/okButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OK">
        </Button>
        <Button android:id="@+id/cancelButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel">
        </Button>               
    </LinearLayout>
</LinearLayout>

Я хочу, чтобы мой диалог отображался, но фон не исчезал. Это возможно? Потому что представление, которое вызывает это диалоговое окно, имеет фон neato, который я хотел бы показать в качестве фона для диалога.

Я нашел это онлайн:

<style name="doNotDim" parent="@android:style/Theme.Dialog">
    <item name="android:backgroundDimAmount">0</item>
</style >

но не знаете, как применить это к моему диалогу? У меня есть класс под названием public class UserInputDialog extends Dialog implements OnClickListener. Он устанавливает свой контентный вид в формат, описанный выше.

Я думаю, что я делаю все правильно, просто не уверен, как добавить этот стиль, чтобы я не мог угаснуть фон.

Вторичный вопрос: можете ли вы получить новый внешний вид в своем диалоговом окне (например, используя изображение или значок с текстом там), используя Темы?

4b9b3361

Ответ 1

Создайте файл res/values ​​/styles.xml и добавьте его в него.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.DoNotDim" parent="android:Theme">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

И примените тему к своей деятельности.

<activity android:name=".SampleActivity" android:theme="@style/Theme.DoNotDim">

Ответ 2

Вы также можете удалить эффект dim с помощью кода со следующим:

dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

Ответ 3

Создайте собственный стиль и поместите его в папку значений

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="YourCustomStyle" parent="android:Theme">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources> 

Чтобы задать стиль для отдельного диалога, вы можете использовать

Dialog dialog = new Dialog(context, R.style.YourCustomStyle);

Ответ 4

Для отображения диалога типа TrueCaller выполните следующие действия:

В styles.xml файле.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="myBackgroundStyle" parent="android:Theme.Dialog">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

В AndroidManifest.xml сделайте следующее:

<activity android:name=".SampleActivity" android:theme="@style/myBackgroundStyle">