Android Recyclerview子项宽度
如何获取所有子项的宽度 我将这些代码放在CreateViewHolder中Android Recyclerview子项宽度,android,android-recyclerview,Android,Android Recyclerview,如何获取所有子项的宽度 我将这些代码放在CreateViewHolder中 viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { viewholder.textView.getWi
viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
viewholder.textView.getWidth();
Log.e("TAG", "onGlobalLayout: " + viewholder.textView.getWidth());
}
});
然后当我调试我的应用程序时,会出现很多宽度值。如何以正确的方式获取所有子对象宽度(包括不可见的子对象)
然后当我调试我的应用程序时,会出现很多宽度值。如何以正确的方式获取所有子对象宽度(包括不可见的子对象)
首先,您无法获得子对象的宽度,因为它们是不可见的(我假设您是指屏幕外的边界),因为它们尚未创建
很多宽度值出来了
其次,您最好在使用完侦听器后立即注销它:
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());
}
});
好吧如果我有10个项目,并且在第一个项目上选择了recyclerview怎么办。如何滚动到最后一个项目,因为从第7个项目到第7个项目都是不可见的?@WeiLong,
layoutManager.scrollToPositionWithOffset(10,0)
它不工作,只能向前滚动,或者仍然在那里搜索目标项目,并对其进行选择。没有任何滚动动画也可以。@WeiLong,在列表中找到相应项目的位置
,然后滚动到该项目linearLayoutManager.scrollToPosition(desiredindex)