117.info
人生若只如初见

Android getLocationOnScreen在滑动时如何使用

您可以使用ViewTreeObserver来监听View的位置变化,然后在onGlobalLayoutListener中获取View相对屏幕的位置。以下是一个示例代码:

final View view = findViewById(R.id.your_view);

ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        int[] location = new int[2];
        view.getLocationOnScreen(location);

        int x = location[0];
        int y = location[1];

        Log.d("TAG", "View location on screen: x=" + x + ", y=" + y);
    }
});

这样,每当View的位置发生变化时,位置信息都会被打印出来。您可以根据需要在这里执行相应的操作。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fea4fAzsIAANfDFU.html

推荐文章

  • Android NotificationChannel的设置技巧

    给通知渠道设置适当的重要性级别,以确保用户能够根据其重要性水平进行适当的处理。可以使用NotificationManager的setImportance()方法来设置通知渠道的重要性级...

  • Android NotificationChannel的兼容性处理

    在Android中,NotificationChannel是Android 8.0(API级别26)引入的新特性,用于对通知进行分组和管理。当应用程序在较旧的Android版本上运行时,需要进行兼容性...

  • Android NotificationChannel对版本的要求

    Android NotificationChannel 是在 Android 8.0(API 级别 26)引入的新特性,因此只能在 Android 8.0 及更高版本上使用。在之前的 Android 版本中,是无法使用 ...

  • Android NotificationChannel的重要性分析

    Android NotificationChannel是Android 8.0(API级别26)及更高版本中引入的新功能,用于对通知进行分组和管理。它允许开发者为不同类型的通知设置不同的优先级、...

  • 为什么Android getLocationOnScreen无效

    Android中的getLocationOnScreen()方法用于获取View在屏幕上的位置,包括x和y坐标。如果该方法返回的值无效,可能有以下几个原因: View还没有被添加到窗口中:如...

  • Android getLocationOnScreen对性能影响大吗

    getLocationOnScreen方法并不会对性能造成显著影响,因为它仅仅是返回当前View在屏幕上的位置。然而,如果频繁调用该方法,可能会导致一定程度的性能损耗,因为每...

  • 实现拖拽功能是否需要用到Android getLocationOnScreen

    不一定需要使用Android的getLocationOnScreen方法来实现拖拽功能。拖拽功能可以通过其他方式实现,例如使用触摸事件监听器来监听用户的手势操作,根据用户的手势...

  • Android getLocationOnScreen常见错误及解决

    常见错误及解决方法: NullPointerException:如果在调用 getLocationOnScreen() 方法时出现 NullPointerException 错误,可能是因为 View 对象还没有被添加到界...