在 Honeycomb ActionBar 中,我正在尝试确定出现为我的ActionBar“showAsAction”选项的图标的位置。我设置了几个图标仅在有空间时才出现。当应用程序首次运行时,我想在每个图标下包含有用的注释。为了正确定位注释,我需要知道这些图标的位置。
我从活动中调用了getActionBar(),但图标不出现在ActionBar的视图中。我知道我可以通过onPrepare和OptionsMenu的onCreate获取菜单项的句柄,但它们不包含任何定位信息,因为ActionBar还没有被渲染。有什么想法吗?我也探索了onMenuVisibilityListener,但此时ActionBar仍然不包含我可以用来计算选项菜单图标相对位置的任何信息。
如果有一种方法也可以确定哪些ActionBar项目实际上正在出现,我也可以计算放置物品的位置。
我从活动中调用了getActionBar(),但图标不出现在ActionBar的视图中。我知道我可以通过onPrepare和OptionsMenu的onCreate获取菜单项的句柄,但它们不包含任何定位信息,因为ActionBar还没有被渲染。有什么想法吗?我也探索了onMenuVisibilityListener,但此时ActionBar仍然不包含我可以用来计算选项菜单图标相对位置的任何信息。
如果有一种方法也可以确定哪些ActionBar项目实际上正在出现,我也可以计算放置物品的位置。
setContentView()
之后随时调用findViewById()
来查找 你自己膨胀的 小部件。操作栏不是你的代码,也不是内容视图的一部分。虽然你可以尝试从内容视图向上导航视图层次结构,但无法保证哪些小部件会出现,它们是否在所有 Android 操作系统版本上都相同等等。这将会破坏封装性。无论你做什么都是不可靠的,因为它将假定内部实现的特性。如果你珍视你的用户,请勿发布不可靠的代码。 - CommonsWare