我想知道,是否有可能获取操作栏菜单项的屏幕坐标?
正如我想创建一个介绍屏幕,绘制一个指向所需操作栏菜单项的箭头,以便用户知道从哪里开始。
我是这样做的:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId().equals(R.id.my_menu_item)) {
View menuView = findViewById(R.id.menu_item_search);
int[] location = new int[2];
menuView.getLocationOnScreen(location);
int menuViewX = location[0];
int menuViewY = location[1];
}
}
目前,除了您自己的自定义操作布局或操作视图外,没有记录和支持的方法来执行此操作。没有 API 可以检索操作栏的普通内容(主页提示、标题、常规项目)。
如另一个答案中所述,ShowcaseView 可能为此做了一些未记录/不受支持的事情,例如遍历View
层次结构以获取这些小部件。这是有风险的,因为未来的 Android 版本,或制造商/ROM 修改器对 Android 的更改可能会打破这种逻辑。