自定义ActionBar上的Android默认HomeAsUp

时间:2013-10-22 16:35:05

标签: android android-actionbar navigation-drawer android-icons

我有一个带有自定义布局视图和样式的自定义Android操作栏。我需要为导航抽屉显示“Home As Up”按钮。问题是按钮没有以我的自定义布局样式显示。我需要Android默认主页作为向上图标,以便我可以有一个默认的导航抽屉图标。 (具有导航抽屉打开和关闭动画的图标)。

现在我尝试了

getActionBar().setDisplayHomeUpAsEnabled(true);

getActionBar().setHomeButtonEnabled(true)

但是主页按钮没有显示出来。任何人都可以告诉我如何在自定义操作栏上实现默认主页按钮吗?

2 个答案:

答案 0 :(得分:7)

对我来说,这可以显示向上导航。我还在弄清楚如何实际实现向上导航。

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并实现指定的功能。

答案 1 :(得分:0)

旧问题,但这是我在我身上使用的......

...
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>

如果使用ActionBarSherlock或AppCompat,元数据值适用于Android 4.0及以下版本,但对于4.1及更高版本,只需将android:parentActivityName添加到清单中的活动声明。

这使我可以使用向上导航(显示按钮并实际向上导航),同时我有自定义操作栏布局。

希望将来可以帮助您或其他人。