Ответ 1
Чтобы отключить и скрыть DrawerToggle "Hamburger", просто позвоните
mDrawerToggle.setDrawerIndicatorEnabled(false);
Я использую новый DrawerLayout
, чтобы иметь боковую навигацию. Я использую значок ящика ( "гамбургер" ) следующим образом:
@Override
protected void onStart() {
super.onStart();
mDrawerLayout = (DrawerLayout) findViewById(R.id.activity_main_drawerlayout);
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_navigation_drawer,
R.string.app_name,
R.string.app_name);
mDrawerLayout.setDrawerListener(mDrawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
}
Однако, когда я добавляю Fragment
в backstack, я хочу снова отобразить обратную стрелку, чтобы пользователь мог вернуться к "home" и только затем открыть ящик приложения.
Как я могу reset значок ящика на задний значок?
Стрелка, которую я хочу:
Чтобы отключить и скрыть DrawerToggle "Hamburger", просто позвоните
mDrawerToggle.setDrawerIndicatorEnabled(false);
Я создал интерфейс для хостинговой деятельности, чтобы обновить состояние представления меню гамбургера. Для фрагментов верхнего уровня я устанавливаю toggle на true
и для фрагментов, для которых я хочу отображать up < arrow Я установил переключатель в false
.
public class SomeFragment extends Fragment {
public interface OnFragmentInteractionListener {
public void showDrawerToggle(boolean showDrawerToggle);
}
private OnFragmentInteractionListener mListener;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.mListener = (OnFragmentInteractionListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener");
}
}
@Override
public void onResume() {
super.onResume();
mListener.showDrawerToggle(false);
}
}
Затем в моей деятельности...
public class MainActivity extends Activity implements SomeFragment.OnFragmentInteractionListener {
private ActionBarDrawerToggle mDrawerToggle;
public void showDrawerToggle(boolean showDrawerIndicator) {
mDrawerToggle.setDrawerIndicatorEnabled(showDrawerIndicator);
}
}