Android Default HomeAsUp на пользовательской панели действий

У меня есть пользовательская панель действий Android с пользовательским макетом и стилем. Мне нужно показать кнопку "Домой как вверх" для моего навигационного ящика. Проблема в том, что кнопка не отображается в моем пользовательском стиле макета. Мне нужен домашний значок Android по умолчанию, как значок "вверх", так что у меня может быть значок навигационной панели по умолчанию. (Значок с анимацией открывания и закрывания навигационного ящика).

Теперь я попытался сделать

getActionBar().setDisplayHomeUpAsEnabled(true);

getActionBar().setHomeButtonEnabled(true)

Но кнопка домой не появляется. Может кто-нибудь сказать мне, как реализовать стандартную домашнюю кнопку на пользовательской панели действий?

2 ответа

Для меня это работает для отображения навигации вверх. Я все еще выясняю, как на самом деле реализовать навигацию вверх.

getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP);

Похоже, вы можете просто использовать удобную функцию для обработки следующим образом:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent intent;
            intent = NavUtils.getParentActivityIntent(this);
            NavUtils.navigateUpTo(this, intent);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

Для обработки кнопок в пользовательской части вы можете добавить onClick в макеты и реализовать указанные функции.

Старый вопрос, но вот что я использовал на моем...

...
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP);
getActionBar().setDisplayHomeAsUpEnabled(true);
...

А затем в AndroidManifest.xml:

<activity
    ...
    android:parentActivityName="com.example.app.MainActivity"
  <meta-data
      android:name="android.support.PARENT_ACTIVITY"
      android:value="com.example.app.MainActivity">
  </meta-data>
</activity>

Значения метаданных для Android 4.0 и ниже поддерживаются, если используется ActionBarSherlock или AppCompat, но для 4.1 и выше просто добавьте android: parentActivityName в объявление активности в манифесте.

Это позволило мне использовать навигацию вверх (показать кнопку И действительно перемещаться вверх), пока у меня была настраиваемая раскладка панели действий.

Надеюсь, что это поможет вам или кому-то еще в будущем.

Другие вопросы по тегам