Android:获取对 ActionBar 导航的 View 引用?

标签 android android-actionbar

目前,我需要访问部分 ActionBar,以便在适当的位置附加上下文帮助气泡。这对于菜单项来说似乎相当简单,因为 menuItem.getActionView 可用。

但是,我不确定如何获得对 ActionBar 中导航列表的类似访问权限。不是在菜单 xml 文件中包含项目,而是像这样添加导航选项和监听器:

getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getActivity().getActionBar().setListNavigationCallbacks(mNavigationListAdapter, this);

对于菜单项,以下工作:

MenuItem menuItem = menu.findItem(R.id.my_nifty_menu_item);
View viewToAttachHelpBubbleTo = menuItem.getActionView();

如何获得与 ActionBar 中使用的导航菜单类似的 View 引用?

最佳答案

可以将 View 存储在适配器中,然后从那里拉取它。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // Stuff happens...
    mLastParentView = parent;
}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
    // Stuff happens...
    mLastParentView = parent;
}

public View getLastParentView() {
    return mLastParentView;
}

之后

getActivity().getActionBar().setListNavigationCallbacks(mNavigationListAdapter, this);

可以使用 getLastParentView() 从适配器请求导航列表的 View

关于Android:获取对 ActionBar 导航的 View 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19692355/

相关文章:

android - 默认启动器图标大小应该是多少

android - 如何更改搜索 View 图标颜色?

java - Android,如何更改状态更改时的操作栏 Logo 按钮?

android - 如何使用 CollapsingToolbarLayout 而不是针对特定 Activity 使用应用程序主题操作栏?

android - findViewById(android.R.id.content).getRootView() nullPointerException 异常

android - Sqlite 浏览器在将数据插入 sqlite 时无响应

android - 如何在创建 Activity 之前隐藏操作栏,然后再次显示?

android - 基于 Appcombat 的 ActionBar 主题不适用于较新的设备

java - 有没有办法获取最新的聚合数据而不是 Firebase 列表中的最后一个?

java - Android Studio 3.0 金丝雀 8 : Advanced profiling is unavailable for the selected process