android recylerview 中如何获取子view?

在修改一份开源代码的时候,

发现了recylerview使用过程中的一个问题,

搜罗了一番,

好像大家都没有遇到,

于是就在这里记一笔。



一般viewGroup的子类要获取子view的方法是

getChildAt(int index)

但是奇怪的事情发生了,

我在通过recylerview来获取子view的时候,

不成功,

于是换layoutManager来获取,

依旧不成功,

郁闷ing,

于是进到recylerview里去找,

发现

    public View findViewByPosition(int position) {
        int childCount = this.getChildCount();
        if(childCount == 0) {
            return null;
        } else {
            int firstChild = this.getPosition(this.getChildAt(0));
            int viewPosition = position - firstChild;
            return viewPosition >= 0 && viewPosition < childCount?this.getChildAt(viewPosition):null;
        }
    }



到这里,问题解决,皆大欢喜!



你可能感兴趣的:(android)