2017-08-17 3 views
2

Comment faire pour assombrir l'arrière-plan complet lorsqu'un fragment est ouvert de la même manière lors de la création d'un DialogFragment. Rightnow Je suis capable d'assombrir l'arrière-plan de la fenêtre de l'application uniquement en utilisant une vue avec match_parent comme hauteur et largeur. Mais l'utiliser ne diminue pas l'arrière-plan de la barre d'état ce qui se passe avec le DialogFragment.Dim Terminer l'arrière-plan lors de l'ouverture d'un fragment dans Android

Je souhaite atténuer l'arrière-plan complet, y compris la fenêtre des applications et la barre d'état lorsque le fragment est créé ou ouvert.

À l'heure actuelle, cela se produit avec le DialogFragment. Mais je dois utiliser seulement Fragment.

+0

Avez-vous essayé, getActivity() getWindow() addFlags (WindowManager.LayoutParams.FLAG_DIM_BEHIND);.. ? – Aveek

+0

Oui, je l'ai essayé en fragment onCreateView mais ne fonctionnait pas. – kanudo

Répondre

0

C'est ce que je l'ai fait je pris une disposition relative à la hauteur et match_parent largeur, en dehors de la mise en page principale de mon fragment

<RelativeLayout 
     android:id="@+id/rl" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/background_transition"/> 

Ceci est mon fichier background_transition

<?xml version="1.0" encoding="UTF-8"?> 
<transition xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="00FFFFFF" /> 
<item android:drawable="#B3FFFFFF" /> 
</transition> 

Puis pour assombrir En arrière-plan, créez un objet TransitionDrawable comme celui-ci dans votre fragment

private TransitionDrawable transition; 

puis appelez

transition.startTransition(300); 

pour assombrir l'arrière-plan, et

transition.reverseTransition(300); 

pour revenir à l'arrière-plan normal.

Espérons que cela aide.

+0

Ce n'est pas ce dont j'ai besoin ami, c'est similaire à ce que je suis en ce moment avec. – kanudo

+0

Vous pouvez réduire la barre d'état séparément, reportez-vous à https://developer.android.com/training/system-ui/dim.html –

0

Essayez ceci:

fragmentParentLayout.getForeground().setAlpha(215); 
+0

Échec de mon application dans onCreateView() –