在获取某些控件的getLeft()的值为0的原因是这个时候布局未完成,自然无法获取到,所以打印出的值为0
我们可以对该控件设置监听事件,当布局完成后,再来获取就可以获取到了
//布局完成的监听事件
llGuide.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mPointWidth = llGuide.getChildAt(1).getLeft() - llGuide.getChildAt(0).getLeft();
System.out.println("mPointWidth" + mPointWidth);
llGuide.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
当Android布局未完成时,控件的getLeft()可能返回0。为解决此问题,可以使用getViewTreeObserver()监听布局完成,之后再获取正确的值。
1682

被折叠的 条评论
为什么被折叠?



