我的AppCompatActivity中有一个ActionBar设置,我非常希望能够获得菜单项和溢出菜单的位置,以便我可以使用一个工具提示指向ActionBar中的任何项目。我现在已经尝试了很多方法,并且我确实有办法抓住ActionBar和工具栏,但似乎任何视图中都有左边的零等等。我创建了一个PopupWindow的工具提示组件,我可以将它放在ActionBar上没问题,但我无法弄清楚如何获得菜单项的正确位置。有办法吗?
谢谢
索伦
答案 0 :(得分:0)
你可能总是得到一个零上和左位置,因为你试图在视图布局之前读取位置。
要在测量视图和布局时获取位置,您必须ViewTreeObserver。
在您的活动onCreate()
中,您可以执行以下操作:
toolbar.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
toolbar.getViewTreeObserver().removeOnPreDrawListener(this);
// here you can get the real position of each menu item and position your Popup
return true;
}
});