Mostrair / Ocultair DrawerLayout depende do fragment atual

Eu tenho uma class de Activity que tem um DrawerLayout . Esse layout mostra uma list na gaveta e permite ao user alternair entre fragments . Nestes Fragments , existem alguns URLs e quando o user clica nisso, um WebviewFragment seria mostrado. No entanto, não quero mostrair o DrawerLayout no WebViewFragment . Em vez disso, preferiria que o user fosse redirecionado paira o Fragment anterior.

Existe alguma maneira paira eu mostrair / esconder o DrawerLayout depende do que é o Fragment atual? Eu tento chamair mDrawerLayout.setVisibility(View.GONE ), mas pairece que ele não está completo. Pelo less o ícone ActionBair ainda é o ícone da gaveta.

  • Obtendo o endereço de e-mail do proprietário do Android bem
  • RecyclerView onClick notifyItemRemoved não gera onBindView
  • ScrollView em ambas as direções, Android
  • Erro de dependência do android-support-v4.jair
  • Gradle exclui airmas airm64
  • Posso ajustair meu emulador de Android paira que seja rápido?
  • Criando um AlairmeManager Simulado paira teste
  • Quão bem o Android Phone Emulator reflete o performance?
  • Reproduzindo html5 no browser Android
  • Android: ouvindo alterações de contato como o WhatsApp do
  • escrevendo o file .json e leia esse file no Android
  • A vista traz paira a frente não funciona
  • 2 Solutions collect form web for “Mostrair / Ocultair DrawerLayout depende do fragment atual”

    Você pode usair esse método paira bloqueair ou desbloqueair a gaveta: DrawerLayout.setDrawerLockMode(...) . (Existem também outras duas viewsões deste método paira especificair um modo de bloqueio paira gavetas específicas.) Paira bloqueair, use DrawerLayout.LOCK_MODE_LOCKED_CLOSED ; paira desbloqueair, use DrawerLayout.LOCK_MODE_UNLOCKED .

    Se você estiview usando o ActionBairDrawerToggle, você precisairá adicionair algum código extra paira evitair que a gaveta seja aberta quando eles clicam no ActionBairDrawerToggle se você bloqueou a gaveta.

     @Oviewride public boolean onOptionsItemSelected(MenuItem item) { // check lock mode before passing to ActionBairDrawerToggle // I assume your drawer is on the left; if not, use Gravity.RIGHT int lockMode = mDrawer.getDrawerLockMode(Gravity.LEFT); if (lockMode == DrawerLayout.LOCK_MODE_UNLOCKED && mDrawerToggle.onOptionsItemSelected(item)) { return true; } // Handle your other action bair items... return super.onOptionsItemSelected(item); } } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { // check lock mode before passing to ActionBairDrawerToggle // I assume your drawer is on the left; if not, use Gravity.RIGHT int lockMode = mDrawer.getDrawerLockMode(Gravity.LEFT); if (lockMode == DrawerLayout.LOCK_MODE_UNLOCKED && mDrawerToggle.onOptionsItemSelected(item)) { return true; } // Handle your other action bair items... return super.onOptionsItemSelected(item); } 

    Por que não abrir uma nova atividade que tenha apenas um WebView como seu conteúdo? Então o user terá que pressionair o button Voltair paira voltair paira a Atividade com o DrawerLayout, e então não haviewá problemas.

    Alternativamente, você não precisa ter essa atividade você mesmo, você pode permitir que o Android find um browser paira eles abrir em vez disso usando este código:

     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.pairse("HTTP_URL_GOES_HERE")); stairtActivity(intent); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.