我正在使用actionbarsherlock,并想要一个类似的home按钮的功能,因为它是众所周知的谷歌地图。
我已经成功地打开了一个QuickAction(http://code.google.com/p/simple-quickactions/)当按下Home按钮时,这段代码:
@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;
}
但是,我使用活动的简单文本视图作为锚(r.id.text)。如何从那里的actionbar中检索home按钮视图?
哦,
findViewById(android.R.id.home)
或findViewById(item.getItemId())
都返回空值。 最佳答案
无法访问主视图,因为它位于内容视图上方和窗口装饰中。
谷歌在内容视图中的预蜂窝设备上使用了一个自定义的操作条。这就是他们制作这个自定义下拉列表的原因。在Honeycomb和更新版本上,它们在系统操作栏中使用高度定制的列表导航版本。
因为您使用的是ActionBarSherlock,所以有两个选项:
选择较新的样式导航并自定义内置列表导航。
提供一个模拟主视图的自定义导航视图(例如,其中包含应用程序图标)。有了这个自定义视图,您将能够提供一个锚定,自定义弹出菜单可以附加在锚定上。