1

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

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

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

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

子视图是LinearLayout类型的。

4

1 回答 1

5

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

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

您还可以连接到 a 上,OnGlobalLayoutListener以便每次更改其尺寸时都可以获得坐标:

parent.getViewTreeObserver().addOnGlobalLayoutListener(
     new ViewTreeObserver.OnGlobalLayoutListener() {
          public void onGlobalLayout() {
               int right = parent.getWidth() - c4.getLeft();
          }
     }
于 2013-07-11T07:25:14.317 回答