android - ActionBarSherlock:如何访问主页按钮 View ?

标签 android android-actionbar actionbarsherlock

我正在使用 ActionBarSherlock 并且想要一个与 Google map 已知的主页按钮类似的功能。

Home Button like in 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;
}

但是我使用 Activity 的简单 TextView 作为 anchor (R.id.text)。如何从那里的 ActionBar 检索主页按钮 View ?

哦,findViewById(android.R.id.home)findViewById(item.getItemId()) 都返回 null。

最佳答案

您无法访问主页 View ,因为它位于内容 View 上方和窗口装饰中。

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

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

  1. 选择更新样式的导航并自定义内置列表导航。
  2. 提供模仿主页 View 的自定义导航 View (例如,其中包含您的应用程序图标)。使用此自定义 View ,您将能够提供一个可以附加自定义弹出菜单的 anchor 。

关于android - ActionBarSherlock:如何访问主页按钮 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187523/

相关文章:

Android Studio : Could not find com. android.tools.build :gradle:2. 0.0-alpha2

Android - ResourcesNotFoundException 试图通过资源 id 设置操作栏图标时

android - 拖放操作栏选项卡(Android 4.0 ICS)?

java - 在 android 模拟器中运行 HelloListView 时出现问题

android - android中的应用程序级变量被清空

android - 使用 NDK 编译链接(未复制)文件

android - 带有自定义 ActionProvider 的 ClassCastException

android - 使用 actionbarsherlock 选项卡样式的选项卡内容

Android 兼容性问题(Api 8、ActionbarSherlock)

android - 为多个对象使用通用类(actionBar 选项卡)