Я пытаюсь открыть свой навигационный ящик с помощью кнопки ActionBarActivity Up в течение нескольких часов, но я просто не могу ее обработать.Кнопка Android ActionBar Up не откроет навигационный ящик
Прямо сейчас я могу открыть его, прокручивая/сдвигая вправо, и я вижу стрелку вверх/назад в ActionBar, но ящик навигации не открывается, как только я нажимаю кнопку.
Обратите внимание, что я использую Support v7 ActionBarDrawerToggle
.
Вот мой ActionBarActivity-х onCreate
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new HomeFragment())
.commit();
}
Log.d(TAG, "onCreate");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mDrawerLayout = (DrawerLayout) findViewById(R.id.main_drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.setDrawerIndicatorEnabled(true);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
Log.d(TAG, "onPostCreate");
mDrawerToggle.syncState();
}
ли я что-то отсутствует? Возможно, есть вызов метода, который связывает кнопку Up/Back ActionBar с DrawerToggle?
Любая помощь/руководство очень ценится.
Обновление: Я также пробовал использовать mDrawerToggle.syncState();
и ничего не изменилось. Обновлен метод onCreate выше, чтобы включить вызов syncState
.
Обновление 2: Я снова обновил код до того, как он находится в моем файле MainActivity. Я сделал несколько изменений, как было предложено, но ящик все равно не откроется.
Я испытал это в двух устройствах: в HTC One M7 с Android 5.0.2 и Sense 6.5 и в x86 AVD эмулятор работает Lollipop SDK 21.
Нельзя ли это сделать без замены ActionBar по умолчанию на панели инструментов? Это может сработать, но кажется слишком утомительным для кажущейся простой задачи. Я попробую это, если я не смогу сделать эту работу без замены ActionBar по умолчанию. В любом случае, спасибо! Я дам вам знать, если это сработает. – Cramps
'ToolBar' является обобщением' ActionBar'. Где вы можете использовать «ActionBar», вы можете использовать «ToolBar». – SilentKnight
Я только что закончил реализацию «Пути инструментов», и он работает по назначению. Спасибо! :) – Cramps