Intereting Posts
Получение программной версии ОС на Android программно Android – Не удалось подключиться к устройству Bluetooth на Lollipop Показывать индикатор выполнения при загрузке Activity Выполнение не выполнено для задачи ': app: compileDebugAidl': aidl отсутствует Запуск приложений Android в веб-браузере Типы памяти Android (RAM v Внутренняя память) Создание арреалиста объектов Новичок Разработчик: Неизвестная ошибка: java.lang.nullPointerException Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до AppCompat v23 Как указать правильный размер диалогового окна в файле макета XML для диалогового окна Android? Может ли bluetooth или wifi-поток (spp) когда-либо пропускать байты или иметь поврежденные? Закрыть всплывающее окно кнопкой «Назад» Android HttpClient и HTTPS Хорошая практика программирования вызывает invalidate () внутри onDraw ()? Создание приложения для Android с поддержкой нескольких экранов

Иконка гамбургера не отображается в фрагменте навигационного ящика

Я использую Fragement для навигационного ящика и, следовательно, не могу использовать onPostCreated для вызова syncState

public class NavigationDrawerFragment extends Fragment{ .... 

Вызов syncState () на avctivityCreated

 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // Indicate that this fragment would like to influence the set of actions in the action bar. setHasOptionsMenu(true); mDrawerToggle.syncState(); } 

Использование значка ic_drawer для значка

 public void setUp(int fragmentId, DrawerLayout drawerLayout) { mFragmentContainerView = getActivity().findViewById(fragmentId); mDrawerLayout = drawerLayout; // set a custom shadow that overlays the main content when the drawer opens mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); // set up the drawer's list view with items and click listener ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); // ActionBarDrawerToggle ties together the the proper interactions // between the navigation drawer and the action bar app icon. mDrawerToggle = new ActionBarDrawerToggle( getActivity(), /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ R.string.navigation_drawer_open, /* "open drawer" description for accessibility */ R.string.navigation_drawer_close /* "close drawer" description for accessibility */ ) { @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); if (!isAdded()) { return; } getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); if (!isAdded()) { return; } if (!mUserLearnedDrawer) { // The user manually opened the drawer; store this flag to prevent auto-showing // the navigation drawer automatically in the future. mUserLearnedDrawer = true; SharedPreferences sp = PreferenceManager .getDefaultSharedPreferences(getActivity()); sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply(); } getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() } }; 

Не могу понять, что не так. Пожалуйста помоги

Solutions Collecting From Web of "Иконка гамбургера не отображается в фрагменте навигационного ящика"

У меня тоже была эта проблема. Для меня импорт android.support.v7.app.ActionBarDrawerToggle вместо android.support.v4.app.ActionBarDrawerToggle исправил его. Вы также должны удалить аргумент R.drawable.ic_drawer когда вы определяете mDrawerToggle:

mDrawerToggle = new ActionBarDrawerToggle( getActivity(), mDrawerLayout, R.string.navigation_drawer_open, R.string.navigation_drawer_close )

Если это не сработает, попробуйте некоторые ответы на этот вопрос .

Принятый ответ не решал его для меня, я узнал, что у меня неправильное переопределение для onPostCreate

 @Override public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) { super.onPostCreate(savedInstanceState, persistentState); mDrawerToggle.syncState(); } 

Это должно быть

 @Override public void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); }