Il travailler avec moi, Le glisser pour ouvrir le tiroir a été désactivé.
Si cela ne fonctionne toujours pas, consultez la réponse ici.
Êtes-vous sûr? J'ai essayé, mais il a été activée ouverture et de fermeture, les deux. J'ai été tester sur android 2.3 x avec ActionBarSherlock cadre.
Je suis sûr, parce que j'ai utilisé dans mon code. Mais je n'ai pas une utilisation avec ActionBarSherlock. J'ai utilisé avec ActionBar seulement.
Il fonctionne avec ActionBarSherlock trop. Je l'ai peu utilisé.
Pour clarifier: DrawerLayout.LOCK_MODE_LOCKED_OPEN verrouille le tiroir à l'état ouvert de sorte que l'utilisateur ne peut pas le cacher. DrawerLayout.LOCK_MODE_LOCKED_CLOSED verrouille le tiroir à l'état fermé de sorte que l'utilisateur ne peut pas l'ouvrir. Enfin, DrawerLayout.LOCK_MODE_UNLOCKED déverrouille le tiroir de sorte qu'il peut être ouvert ou fermé.
J'ai corrigé la réponse à LOCK_MODE_LOCKED_CLOSED.
Si vous ne l'avez pas déjà mDrawerLayout, la définir comme suit: mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
Mais comment faire si nous voulons contrôler l'ouverture/de fermeture avec l'icône de l'application et de ne pas glisser? Est-il un moyen de le faire? Je suis curieux parce que je suis en train de mettre en œuvre la nouvelle ToolBar API (21) et l'utilisation de la SlidingTabLayout une fonction de a, qui est en conflit avec mon Nav. tiroir glissant. Donc, je préfère désactiver la valeur liquidative. glissière de tiroir en faveur de la ToolBar fonction de recadrage.
Essayez primordial onDrawerSlide() dans votre DrawerListener et ne pas appeler la méthode super.
Aussi, si vous avez deux tiroirs sur les deux côtés, vous pouvez verrouiller l'un par l'obtention de l'affichage de la fenêtre des éléments et de faire drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, navigationView)
cela désactive l'ensemble du tiroir (par exemple, l'icône ne fonctionne plus), et non simplement de glisser, n'a donc pas répondre à la question-qui se réfère expressément à glisser
Je pense que LOCK_MODE_LOCKED_CLOSED travaillé dans Compat 24.x, mais la fonctionnalité a été changé dans de nouveaux compat bibliothèques et LOCK_MODE_LOCKED_CLOSED maintenant complètement empêche la nav menu de montrer, même en utilisant le menu hamburger. Une autre solution est maintenant nécessaire.
Merci pour la clarification de la accepté de répondre avec le drapeau LOCK_MODE_UNLOCKED
Je pense que c'est mieux que la accepté de répondre car il introduit également la partie opposée de la méthode
Si j'ai utilisé mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); pour le verrouillage de la fermeture du tiroir, donc, pour le verrouillage, j'ai utilisé mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); verrouiller le Tiroir à la fois et drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.FIN); représenter quel Tiroir vous souhaitez verrouiller grâce homme qu'il fonctionne pour moi et sauver mon temps.
Dans les sources de courant, il ressemble à 3 pour la gauche et 5 à droite fonctionne comme prévu, mais GravityCompat.La FIN ne l'est pas.
La réponse pour désactiver le balayage est la bonne. Je pense que LOCK_MODE_LOCKED_CLOSED travaillé dans Compat 24.x, mais la fonctionnalité a été changé dans de nouveaux compat bibliothèques et LOCK_MODE_LOCKED_CLOSED maintenant complètement empêche la nav menu de montrer, même en utilisant le menu hamburger.
La classe suivante fonctionne pour moi (Kotlin):
classMyDrawerLayout(ctx:Context):DrawerLayout(ctx){var isSwipeOpenEnabled:Boolean=trueoverride fun onInterceptTouchEvent(ev:MotionEvent):Boolean{if(!isSwipeOpenEnabled &&!isDrawerVisible(Gravity.START)){returnfalse}returnsuper.onInterceptTouchEvent(ev)}@SuppressLint("ClickableViewAccessibility")override fun onTouchEvent(ev:MotionEvent):Boolean{if(!isSwipeOpenEnabled &&!isDrawerVisible(Gravity.START)){returnfalse}returnsuper.onTouchEvent(ev)}}
Vous devez utiliser:
Il travailler avec moi, Le glisser pour ouvrir le tiroir a été désactivé.
Si cela ne fonctionne toujours pas, consultez la réponse ici.
mDrawerLayout
, la définir comme suit:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
API (21) et l'utilisation de laSlidingTabLayout
une fonction de a, qui est en conflit avec mon Nav. tiroir glissant. Donc, je préfère désactiver la valeur liquidative. glissière de tiroir en faveur de laToolBar
fonction de recadrage.onDrawerSlide()
dans votreDrawerListener
et ne pas appeler la méthode super.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, navigationView)
verrouillage, vous pouvez le faire:
et pour le déverrouiller :
Ajouter gravité d'une valeur trop lors de l'utilisation de setDrawerLockMode();
Ce faire :
Cela devrait fonctionner comme un charme
Pour désactiver le balayage, remplacer
onInterceptTouchEvent
etonTouchEvent
surDrawerLayout
et avoir de retour faux.La réponse pour désactiver le balayage est la bonne. Je pense que LOCK_MODE_LOCKED_CLOSED travaillé dans Compat 24.x, mais la fonctionnalité a été changé dans de nouveaux compat bibliothèques et LOCK_MODE_LOCKED_CLOSED maintenant complètement empêche la nav menu de montrer, même en utilisant le menu hamburger.
La classe suivante fonctionne pour moi (Kotlin):