我有LinearLayout
,可以有很多子视图。以编程方式添加子视图。
i need this distance
<---------------------->
--------------------------------wrapper ln----------------------------------
- ... cv4 cv3 cv2 cv1 -
----------------------------------------------------------------------------
Wrapper ln gravity设置为右侧,因此每个添加的子视图都正确。
例如,当我点击“cv4”时,我需要从包装线性布局的右侧获得距离。
子视图属于LinearLayout
类型。
答案 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();
}
}