如果视图改变其XY位置,则在视图上收听

GMs*_*soF 5 android android-layout

如果视图正在移动或其XY位置发生变化,如何在视图上侦听以获得XY坐标?视图不需要被拖动(或通过用户触摸事件),如果方向改变或由显示键盘等推动(向上)它可能会改变.我想知道它更新时的XY更新协调,我该怎么办?去做?

Cha*_*har 9

你可能会做这样的事情

final View activityRootView = findViewById(R.id.mainLayout);
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
                new OnGlobalLayoutListener() {

                    @SuppressLint("NewApi")
                    @Override
                    public void onGlobalLayout() {
                        findViewById(R.id.textView).getX();
                        findViewById(R.id.textView).getY();

                    }
                });
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 这是一个很好的解决方案,除非你不应该在onGlobalLayout(或任何其他被多次调用的方法)中调用findViewById,因为它的操作很昂贵而且你只需要做一次! (6认同)