J'ai cette belle vue de dialogue je règle ma classe 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>
Je veux que ma boîte de dialogue apparaisse, mais que l'arrière-plan ne disparaisse pas. Est-ce possible? Parce que la vue qui appelle cette boîte de dialogue a un arrière-plan neato, j'aimerais qu'elle soit affichée en arrière-plan de la boîte de dialogue.
J'ai trouvé ceci en ligne:
<style name="doNotDim" parent="@Android:style/Theme.Dialog">
<item name="Android:backgroundDimAmount">0</item>
</style >
mais pas sûr de savoir comment appliquer cela à mon dialogue? J'ai une classe appelée public class UserInputDialog extends Dialog implements OnClickListener
. Il définit sa vue de contenu sur la disposition décrite ci-dessus.
Je pense que je le fais bien, mais je ne sais pas comment ajouter ce style pour que je ne puisse PAS atténuer l'arrière-plan.
Question secondaire: pouvez-vous modifier l'apparence de votre boîte de dialogue (par exemple en affichant une image ou une icône avec votre texte) en utilisant des thèmes?
Créez un fichier res/values / styles.xml et ajoutez-le.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.DoNotDim" parent="Android:Theme">
<item name="Android:backgroundDimEnabled">false</item>
</style>
</resources>
Et appliquez le thème à votre activité.
<activity Android:name=".SampleActivity" Android:theme="@style/Theme.DoNotDim">
Vous pouvez également supprimer l’effet dim par code avec les éléments suivants:
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
Créez un style personnalisé et placez-le dans votre dossier de valeurs
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="YourCustomStyle" parent="Android:Theme">
<item name="Android:backgroundDimEnabled">false</item>
</style>
</resources>
Pour définir un style pour un dialogue individuel, vous pouvez utiliser
Dialog dialog = new Dialog(context, R.style.YourCustomStyle);
Pour afficher une boîte de dialogue comme TrueCaller , faites ceci:
Dans le fichier 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>
Dans AndroidManifest.xml
faites ceci:
<activity Android:name=".SampleActivity" Android:theme="@style/myBackgroundStyle">