Android LinearLayoutManager#getChildAt(int) 返回 null

Posted

技术标签:

【中文标题】Android LinearLayoutManager#getChildAt(int) 返回 null【英文标题】:Android LinearLayoutManager#getChildAt(int) retuns null 【发布时间】:2017-01-16 08:38:06 【问题描述】:

我有这个代码

public class CustomLinearLayoutManager extends LinearLayoutManager

    @Override
    public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state)
    
        super.onLayoutChildren(recycler, state);

        int childCount = getChildCount();
        View lastChild = getChildAt(childCount - 1);

        // Do some stuff
    

出于某种原因,有时lastChildnull。怎么可能?

正如 cmets 中提到的,lastChild 是 null 因为根本没有孩子,所以新的问题是为什么在调用 super.onLayoutChildren(recycler, state); 之后没有孩子?

【问题讨论】:

没有孩子,getChildCount()返回0,getChildAt(-1)返回null @user13 好点,我会更新答案。 【参考方案1】:

似乎由于某种原因,没有具有此布局的视图具有父级。你能发布你的xml吗?

【讨论】:

以上是关于Android LinearLayoutManager#getChildAt(int) 返回 null的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制