如何获得所有儿童用品的宽度?
我将这些代码放在 onCreateViewHolder
中viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
viewholder.textView.getWidth();
Log.e("TAG", "onGlobalLayout: " + viewholder.textView.getWidth());
}
});
然后当我调试我的应用程序时,会出现很多宽度值。如何以正确的方式获得所有孩子的宽度(包括隐形孩子)?
答案 0 :(得分:0)
然后当我调试我的应用程序时,会出现很多宽度值。如何以正确的方式获得所有孩子的宽度(包括隐形孩子)?
首先,您无法获得不可见的子项宽度(我假设您的意思是屏幕边界),因为它们尚未创建。
出现了很多宽度值
其次,你最好在完成后立即取消注册:
viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
viewholder.textView.getViewTreeObserver().removeOnGlobalFocusChangeListener(this);
viewholder.textView.getWidth();
Log.e("TAG", "onGlobalLayout: " + viewholder.textView.getWidth());
}
});