获取操作栏菜单项的屏幕坐标以创建介绍屏幕

Che*_*eng 7 android android-actionbar

我想知道,是否有可能获得动作栏菜单项的屏幕坐标位置?因为我想创建一个介绍屏幕,绘制一个指向欲望操作栏菜单项的箭头,以便用户知道从哪里开始.

在此输入图像描述

pen*_*Dev 6

这是我的操作方式:

@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];
    }
}
Run Code Online (Sandbox Code Playgroud)


Com*_*are 1

目前,除了您自己的自定义操作布局或操作视图之外,没有记录和支持的方法可以执行此操作。没有 API 可以检索操作栏的普通内容(主页可供性、标题、常规项目)。

正如另一个答案中提到的,ShowcaseView 可能为此做了一些未记录/不受支持的事情,例如遍历View层次结构以获取这些小部件。这是有风险的,因为未来版本的 Android 或制造商/ROM 修改者对 Android 的更改可能会打破这一逻辑。