Desativando a gaveta de navegação, alternando o botão home / indicador superior em fragmentos

A configuração

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 umFragmentvamos 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ão

Entã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:

Substitua o indicador da gaveta por um cursor "para cima" (provisoriamente factível viamDrawerToggle.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.Editar

Tudo 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!

questionAnswers(5)

yourAnswerToTheQuestion