Le titre explique tout. Tout ce que je veux faire, c'est savoir si le tiroir de navigation est ouvert ou non. J'ai beaucoup cherché sur le net et trouvé la méthodeisDrawerOpen(int drawerGravity)
mais pas trouvé de réponse satisfaisante qui explique comment l'utiliser dans une méthode. J'apprécierais que quelqu'un me l'explique.
Merci d'avance!
android
android-navigation
Chinmay Dabke
la source
la source
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList)
. mDrawerLayout est le tiroir et mDrawerList est la listeRéponses:
En supposant que vous ayez défini une disposition de tiroir en xml:
la source
Cet auditeur utilise :)
la source
Utilisation:
mDrawerLayout.isDrawerOpen () Méthode
Exemple:
la source
De la manière suivante, vous pouvez trouver que le tiroir est ouvert ou fermé.
la source
La réponse de shakeJ est la bonne, et rappelez-vous que vous pouvez utiliser onDrawerSlide pour pouvoir déclencher d'autres fonctions ... par exemple, je l'ai utilisé pour changer la couleur de la barre d'état.
la source
Détecter l'
DrawerLayout
ouverture, la fermeture et la glissière de DrawerLayout.DrawerListenerLe tiroir à chèques est ouvert
la source
La méthode est la même à Kotlin.
Initialiser la vue DrawerLayout
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
Vérifiez si le tiroir est ouvert
if(drawerLayout.isDrawerOpen(GravityCompat.START)){ Log.d("Drawer","open") }
Si vous souhaitez effectuer des actions automatiquement lorsque le tiroir est ouvert ou fermé, vous pouvez effectuer les opérations suivantes.
Dans votre activité principale, créez une classe interne qui est une sous-classe de DrawerLayout.DrawerListener . La classe DrawerLayout implémente l'interface DrawerListener.
Mettez votre action dans la fonction que vous souhaitez utiliser. Dans mon exemple, je ferme le clavier virtuel si l'utilisateur interagit avec le tiroir de navigation. Déclarez InputMethodManager comme ceci dans votre activité principale:
var imm: InputMethodManager = this.getSystemService(Activity.INPUT_METHOD_SERVICE)
Ajoutez votre DrawerListener personnalisé au tiroirLayout (je l'ai mis dans la méthode onCreate)
var drawerListener = CustomDrawer()
drawerLayout.addDrawerListener(drawerListener)
la source
Peut-être, je suis en retard mais je peux partager de nouvelles informations mises à jour. Dans le code donné, j'ai défini le tiroir ouvert / fermé dans la fonction onclick.Si le tiroir est ouvert, il sera fermé sinon ouvert.Cette solution est basée sur RXava DrawerLayout
(androidx.drawerlayout.widget.DrawerLayout)
. Dans mon code, j'ouvre la disposition des tiroirs de droite à gauche.Remarque: Si vous ouvrez tiroirLayout depuis le côté droit, utilisez "GravityCompat.END" et il est ouvert depuis le côté gauche, utilisez "GravityCompat.START" . Profitez du codage .....
la source