Desativando a gaveta de navegação, alternando o botão home / indicador superior em fragmentos
Eu tenho uma atividade cujo contentView é uma instância de umDrawerLayout
, que possui uma gaveta de navegação com um indicador de gaveta exibido na barra de ação. A atividade contém umFragment
vamos chamá-loListFragment
, que contém uma lista de opções. Quando uma opção é clicada, eu substituo oListFragment
com umDetailFragment
.
Neste ponto, gostaria de exibir uma opção de navegação "up" em vez do indicador da gaveta de navegação. Eu sou capaz de exibir o ícone "up" se eu desativar o indicador de gaveta chamandomDrawerToggle.setDrawerIndicatorEnabled(false)
, mas isso apenas remove o ícone da gaveta - ele não remove a funcionalidade - ou seja, quando eu clico no cursor, a gaveta de navegação ainda está aberta.
Além disso, nessas subvisualizações, gostaria de desativar a abertura da gaveta arrastando-a da borda da tela. Eu tentei fazer isso chamandosetDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
mas não parece ter desativado essa funcionalidade.
Eu tentei estender oActionBarDrawerToggle
classe para evitar a abertura da gaveta quando o indicador é clicado - no entanto, tudo o que acontece é que a ação de sobreposição (a navegação "para cima") é executada, mas a gavetaainda abre.
Eu também implementei as etapasAlternar entre a imagem da gaveta de navegação do Android e o cursor para cima ao usar fragmentos . Ele funciona na medida em que exibe o cursor, mas, apesar de substituir a funcionalidade do botão para cima, o menu ainda é aberto (o aplicativo não navega de volta - ele também abre a gaveta).
QuestãoEntão, longa história curta: existe algum (de preferência limpo e elegante, mas neste momento eu vou com hacky) caminho para alcançar essas coisas quando minha raiz de layout é umDrawerLayout
:
mDrawerToggle.setDrawerIndicatorEnabled(false))
Impede que a gaveta se abra quando o cursor é clicado e, em vez disso, substitui a minha funcionalidade "para cima"Evite que a gaveta se abra quando eu arrastar da borda da tela.EditarTudo bem, parece que se eu tanto substituirActionBarDrawerToggle
EonOptionsItemSelected
, o menu não abre quando clico no cursor. Mas ainda abre se eu arrastar da borda. Socorro!