如何在LinearLayout中获取视图的坐标

时间:2013-07-11 07:15:47

标签: android layout android-linearlayout

我有LinearLayout,可以有很多子视图。以编程方式添加子视图。

                                                      i need this distance
                                                    <---------------------->
--------------------------------wrapper ln----------------------------------
-                                             ...  cv4   cv3    cv2    cv1 -  
----------------------------------------------------------------------------

Wrapper ln gravity设置为右侧,因此每个添加的子视图都正确。

例如,当我点击“cv4”时,我需要从包装线性布局的右侧获得距离。

子视图属于LinearLayout类型。

1 个答案:

答案 0 :(得分:5)

您可以在动态添加的视图上调用父LinearLayout上的getWidth()getLeft()来获取右侧的位置:

parent.getWidth() - c4.getLeft();

你也可以勾选OnGlobalLayoutListener,这样你每次改变尺寸时都可以得到坐标:

parent.getViewTreeObserver().addOnGlobalLayoutListener(
     new ViewTreeObserver.OnGlobalLayoutListener() {
          public void onGlobalLayout() {
               int right = parent.getWidth() - c4.getLeft();
          }
     }