自从有了Recyclerview,就彻底抛弃了ListView和GridView,主要是在于其高度可定制化的特性太棒了。最近在尝试RecyclerView嵌套RecyclerView的实现,发现并非想象中简单,还是存在一些问题。
子RecyclerView无法显示
刚开始子RecyclerView的布局中layout_width和layout_height都是设置match_parent,改为wrap_content之后发现还是不行。将layout_height设置成固定值后发现子RecyclerView显示出来了,而且高度也是我们设置的固定值,但是里面并没有显示出内容。
之后考虑是不是并不是高度问题导致的?于是又想了n多方法,结果就是无法显示。
又回过头来考虑高度的问题,最后发现
子RecyclerView的高度必须与其所有children的高度保持一致才能正常显示
自动滑动问题
子RecyclerView正常显示出来后,又发现一个问题,就是当手指滑动完成时如果子RecyclerView第一个孩子没有完全显示时,父RecyclerView会自动滑动直到子RecyclerView的第一个孩子完全显示为止。
这个问题解决方案就是不让子RecyclerView获取焦点就可以了.
recycler.setFocusable(false);
recycler.setFocusableInTouchMode(false);