Android Recyclerview子项宽度

Android Recyclerview子项宽度,android,android-recyclerview,Android,Android Recyclerview,如何获取所有子项的宽度 我将这些代码放在CreateViewHolder中 viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { viewholder.textView.getWi

如何获取所有子项的宽度

我将这些代码放在CreateViewHolder中

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)