如何找到视图的位置,一旦它绘制



我有一个视图,我试图得到它绘制后的位置。

下面是我使用的代码:

view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener{
    @Override
    public void onGlobalLayout(){
        int[] location = new int[2];
        view.getLocationOnScreen(location);
        Log.d("SOME TAG","Location is ("+location[0]+","+location[1]+)");
    });

上面的代码给我0,75。很好,除非我在那里放置一个onClickListener来获取点击的位置(在左上角),我得到0,275。

有趣的是,如果我在onClickListener做同样的过程,我得到0,275左上角。任何线索我做错了什么,或者如果有一个更好的地方把代码获取的位置。它必须在绘制视图之后(原因很明显)。

谢谢!

有几种方法可以解决这个问题。我不确定这里的最终目标是什么,但它们是:

  1. 扩展视图和覆盖onDraw的例子或任何其他你需要的方法
  2. 就像你说的,叫它onClick,因为到那时UI布局和渲染正确

相关内容

  • 没有找到相关文章

最新更新