NestedScrollView+RecyclerView优雅的

作者: 唠嗑008 | 来源:发表于2017-07-11 16:54 被阅读383次

    项目需求,商品详情页

    详情.png

    通常在做详情页的时候,难免需要用到ScrollView嵌套RecyclerView,ScrollView嵌套RecyclerView会存在显示不全的问题,滑动也不是太流畅,
    网上有很多解决滑动冲突的方式,但是笔者今天带来的是一种比较优雅简洁的方式,NestedScrollView嵌套RecyclerView,不会存在显示不全的问题

    xml:

    <android.support.v4.widget.NestedScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
           <!--其他控件-->
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="other"/>
    
            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
           
        </LinearLayout>
    
    </android.support.v4.widget.NestedScrollView>
    

    上面的代码只是简单的布局嵌套而已,但是还有一个小问题,触摸到RecyclerView的时候滑动还有不流畅,只需

    //布局文件的RecyclerView中设置
    android:nestedScrollingEnabled="false" 
    //或者Java代码设置
    recyclerView.setNestedScrollingEnabled(false);
    

    到此滑动冲突和显示不全的问题就可以解决了,但是也在此说明一点,这种办法只是适用于ScrollView中嵌套的那个RecyclerView的内容不是特别多,就像我的项目中,那个评价列表只显示几条,这种情况下,用这个办法不失为一个优雅的解决方式。为啥数据量大的时候就不要使用这种办法了呢?原因是:NestedScrollView+RecyclerView在显示上没什么问题,但会使RecyclerView在初始化就将所有的item都加载出来,换句话说,recyclerVIew的复用机制就不起作用了,所以看项目需求吧

    相关文章

      网友评论

      • hfk:可以考虑多布局
      • 红颜疯子:这个不够全面啊,那要是列表很多的时候怎么解决呢
        唠嗑008:@红颜疯子 我在文字最后备注了,如果列表的数据比较少,比如只有固定的几条的时候,还是可以的,一次性加载出来也没有问题。如果数据量大,只能去重写布局管理器,计算你列表的高度来解决了
      • pengpengli:可以用相对布局包起来,就能显示全了,完了禁止掉竖直滚动
        pengpengli:@陪你唠嗑 好吧,之前用listview的时候重写过布局管理器动态测量高度,现在这种方式用在购物车,没有多考虑你说的那种问题。
        唠嗑008:@pengpengli 这样处理,是能够解决,但是会把列表的全部内容都加载出来,也是失去了最重要的复用性

      本文标题:NestedScrollView+RecyclerView优雅的

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