O título explica tudo. Tudo o que quero fazer é saber se a gaveta de navegação está aberta ou não. Pesquisei muito na net e encontrei o método, isDrawerOpen(int drawerGravity)
mas não encontrei uma resposta satisfatória que explicasse como usá-lo em um método. Eu apreciaria se alguém explicasse isso para mim.
Desde já, obrigado!
android
android-navigation
Chinmay Dabke
fonte
fonte
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList)
. mDrawerLayout é a gaveta e mDrawerList é aRespostas:
Supondo que você tenha definido um layout de gaveta em xml:
fonte
Esse ouvinte usa :)
fonte
Usar:
mDrawerLayout.isDrawerOpen () Método
Exemplo:
fonte
Da seguinte forma, você pode descobrir que a gaveta está aberta ou fechada.
fonte
A resposta do shakeJ é a correta, e lembre-se que você pode usar o onDrawerSlide para disparar outras funções ... por exemplo, usei-o para alterar a cor do StatusBar.
fonte
Detectar
DrawerLayout
aberto, fechado, slide DrawerLayout.DrawerListenerVerifique se a gaveta está aberta
fonte
O método é o mesmo em Kotlin.
Inicialize a visualização DrawerLayout
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
Verifique se a gaveta está aberta
if(drawerLayout.isDrawerOpen(GravityCompat.START)){ Log.d("Drawer","open") }
Se você deseja executar ações automaticamente quando a gaveta é aberta ou fechada, você pode fazer o seguinte.
Em sua atividade principal, crie uma classe interna que é uma subclasse de DrawerLayout.DrawerListener . A classe DrawerLayout implementa a interface DrawerListener.
Coloque sua ação na função que deseja usar. No meu exemplo, estou fechando o teclado virtual se o usuário interagir com a gaveta de navegação. Declare o InputMethodManager assim em sua atividade principal:
var imm: InputMethodManager = this.getSystemService(Activity.INPUT_METHOD_SERVICE)
Adicione seu DrawerListener personalizado ao drawerLayout (eu o coloquei no método onCreate)
var drawerListener = CustomDrawer()
drawerLayout.addDrawerListener(drawerListener)
fonte
Pode ser, estou atrasado, mas posso compartilhar novas informações atualizadas. Em determinado código, eu defino abrir / fechar gaveta na função onclick. Se a gaveta for aberta, então ela será fechada senão aberta. Esta solução é baseada em RXava DrawerLayout
(androidx.drawerlayout.widget.DrawerLayout)
. No meu código, abro o drawerlayout da direita para a esquerda.Nota: Se você abrir drawerLayout do lado direito, use "GravityCompat.END" e ele abrir do lado esquerdo, então use "GravityCompat.START" . Aproveite a codificação ...
fonte