6

我正在使用 ActionBarSherlock 并想要与 Google Maps 所知的主页按钮类似的功能。

谷歌地图中的主页按钮

当使用这段代码按下主页按钮时,我已经设法打开了一个 QuickAction ( http://code.google.com/p/simple-quickactions/ ):

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
       View anchor = findViewById(R.id.text); // how do I get the home button view here?
       quickAction.show(anchor);
       return true;
    }
    return false;
}

但是,我使用活动的简单 TextView 作为锚点(R.id.text)。如何从那里的 ActionBar 检索主页按钮视图?

哦,和findViewById(android.R.id.home)findViewById(item.getItemId())两者都返回空值。

4

1 回答 1

6

您无法访问主视图,因为它存在于内容视图之上和窗口装饰中。

谷歌在内容视图中存在的 pre-Honeycomb 设备上使用自定义操作栏。这就是允许他们制作此自定义下拉菜单的原因。在 Honeycomb 和更新版本上,他们在系统操作栏中使用高度定制的列表导航版本。

由于您使用的是 ActionBarSherlock,因此您有两个选择:

  1. 选择更新样式的导航并自定义内置列表导航。
  2. 提供一个模仿主视图的自定义导航视图(例如,其中包含您的应用程序图标)。使用此自定义视图,您将能够提供可以附加自定义弹出菜单的锚点。
于 2012-04-17T08:35:10.207 回答