美文网首页
Scrollview嵌套Recyclerview显示不全问题解决

Scrollview嵌套Recyclerview显示不全问题解决

作者: 北方南山 | 来源:发表于2017-09-10 12:18 被阅读188次

    项目中遇到页面整体需要可以垂直方向滑动,页面内部嵌套一个或者多个recyclerview的情况(不管是横向还是竖向的列表),竖向的recyclerview不需要滑动,横向可以滑动。很自然的想到scrollview嵌套recyclerview去实现,但是由于一些细节不了解,会出现recyclerview item显示不全的情况,甚至是不显示。

    有4种情况:

    1. 使用Theme.AppCompat.Light.DarkActionBar 主题,scrollview嵌套recyclerview
    2. 使用Theme.AppCompat.Light.DarkActionBar 主题,nestedscrollview嵌套recyclerview
    3. 使用Theme.AppCompat.Light.NoActionBar 主题,scrollview嵌套recyclerview
    4. 使用Theme.AppCompat.Light.NoActionBar 主题,nestedscrollview嵌套recyclerview

    第一种情况会显示不全,解决办法如下:

    scrollview 增加属性android:fillViewport="true" ,因为滑动控件scrollview和NestedScrollView 的子控件,必须由一个ViewGroup包裹,目前使用LinearLayout,需要在这个ViewGroup增加属性android:focusable="true"android:focusableInTouchMode="true"。

    最后覆写recyclerview的canScrollVertically 方法返回false。

    第二种情况recyclerview显示正常。

    第三种情况会出现页面打开自动向上滑动一段距离的现象,就算做了第一种情况的处理,recyclerview仍然显示不全。只好把scrollview替换为nestedscrollview,变成第四种情况去解决。

    第四种情况会出现页面打开自动向上滑动一段距离的现象,解决办法同第一种情况。

    示例项目代码见:
    https://github.com/chaozaiai/ProjectSummary

    相关文章

      网友评论

          本文标题:Scrollview嵌套Recyclerview显示不全问题解决

          本文链接:https://www.haomeiwen.com/subject/yobzjxtx.html