2015-07-22 5 views
0

У меня есть 2 фрагмента mainFragment и childFragment. Я хочу показать actionbar в mainFragment, но хочет скрыть в childFragment. Все работает отлично, за исключением того, когда я возвращаюсь к mainFragment из childFragment и снова иду в childFragment действий бара показывает на несколько секунды, прежде чем получить спрятанные ..Android: Скрытие панели действия во фрагменте

Я не знаю, почему? ПОМОЩЬ

В childFragment я это делаю

@Override 
public void onResume() { 
    super.onResume(); 
    ((ActionBarActivity) getActivity()).getSupportActionBar().hide(); 
    mainActivity.mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 
    getView().setFocusableInTouchMode(true); 
    getView().requestFocus(); 
    getView().setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) { 
       // handle back button's click listener 

       mainActivity.onBackPressed(); 
       ((ActionBarActivity) getActivity()).getSupportActionBar().show(); 
       mainActivity.mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); 
       return true; 
      } 
      return false; 
     } 
    }); 
} 
+0

Можете ли вы поделиться своим кодом макетов фрагментов и кодом скрытия «ActionBar»? –

+0

Нет кода? Нет помощи. –

+0

@AkiK Отредактированный код – Ravi

ответ

0

Вы должны обрабатывать все переходы в вашей основной деятельности ... Там вы должны обрабатывать всю логику в соответствии с вашими потребностями - такие, как скрытие/показ действия бар и такие ...

+0

Plz revisit my ques again Я отредактировал мой код – Ravi

0

Попробуйте сделать это в вашем Фрагмен-х onActivityCreated метод:

((ActionBarActivity) getActivity()).getSupportActionBar().hide(); 
mainActivity.mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

Edit: Я предполагаю, что вы обрабатываете транзакции фрагмента в своей деятельности. Перед тем, как заменить фрагмент в деятельности с:

getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout, new YourFragment()).commit(); 

сделать ваши ActionBar скрывать и показывать операции в соответствии с которым фрагмент вы заменяете. (основной или дочерний)

+0

те же результаты .... все еще действие бар лагов в скрытии :( – Ravi

+0

Я предложил другое решение и отредактировал мой ответ. Если он все еще не работает, вы можете попробовать используйте панель инструментов. Если вам нужна помощь в том, как использовать панель инструментов, дайте мне знать, и я снова смогу изменить свой ответ. – savepopulation

Смежные вопросы