问题:ScrollView嵌套RecyclerView时,RecyclerView的item显示不全

出现问题不要慌,耐心解决才是王道,哈哈。首先说下出现这个问题的情景吧,首先声明这个问题在23版本以上出现的,23版本是android 6.0版本,是的当我们targetSdkVersion=23的时候(也就是我们兼容到23版本)是没有问题的,一但兼容到23版本以上就会出现这个问题,这个坑也是第一次踩到,发表个博客警戒下自己,同时也希望可以帮助你顺利的填上这个坑。

首先这个问题的解决方案有3种(有效的,无效的咱们略过)

第一种:既然这个问题是23版本以上的问题(不包括23版本),那么我们就只兼容到23版本就OK喽,就是修改app的build.gradle的targetSdkVersion = 23 和 compileSdkVersion = 23,这个问题就可以顺利解决,但是现在市场上7.0可以说已经普遍了,8.0手机也已经出了,只兼容到6.0版本显然不是我们想要的结果,那么接下来还有2种解决方案,搬个板凳坐下来认真听下面两种吧。

第二种:在你的RecyclerView上再嵌套一层RelativeLayout然后添加属性 android:descendantFocusability="blocksDescendants",既然提到了这个属性就说下它的意思吧,知道的同学再复习一遍呗,巩固巩固更牢靠。

首先该属性android:descendantFocusability的含义是:当一个view获取焦点时,定义ViewGroup和其子控件两者之间的关系。

它一共有3个属性值,它们分别是:

beforeDescendants:viewGroup会优先子类控件而获取焦点

afterDescendants:viewGroup只有当子类控件不需要获取焦点的时候才去获取焦点

blocksDescendants:viewGroup会覆盖子类控件而直接获取焦点

想必了解了这个属性之后,你就会恍然大悟啦。

  1.  
    <RelativeLayout
  2.  
    android:layout_width="match_parent"
  3.  
    android:layout_height="wrap_content"
  4.  
    android:descendantFocusability="blocksDescendants">
  5.  
    <android.support.v7.widget.RecyclerView
  6.  
    android:id="@+id/rv_me_window"
  7.  
    android:layout_width="match_parent"
  8.  
    android:layout_height="match_parent"
  9.  
    android:paddingLeft="16dp"
  10.  
    android:paddingRight="16dp"
  11.  
    android:overScrollMode="never"/>
  12.  
    </RelativeLayout>

第三种:当然这种方式是今天偶然在网上看到的,听说既可以填item显示不全的坑,又可以填嵌套滑动卡顿的坑。是不是很期待?哈哈,终极解决方案总是要在最后闪亮登场滴,不过这种方式本人没有测试过,不知道具体的可靠性,同学们需要自行测试,本人用的是第二种方案。

方案是这样的:首先在xml布局中将你的ScrollView替换成android.support.v4.widget.NestedScrollView,并在java代码中设置recyclerView.setNestedScrollingEnabled(false);

这样就可以完美解决啦。NestedScrollView这个东西是5.0的新控件,如果不了解的同学可以自行百度,网上对它的解释有很多,也有很多例子,当时我用它的时候,好像是跟做toolbar联动的时候用过,不过已经记得不太深刻了,好久没有使用这个了,印象当中使用这个好像还需要手动依赖compile 'com.android.support:design:25.0.1'这个库。

最后送上NestedScrollView的相关文章:

①http://blog.csdn.net/mchenys/article/details/51541306

②https://segmentfault.com/a/1190000002873657

好了,不多说了,写这篇文章主要有两点,一是用于警告自己防止再次入坑,二是希望本篇文章可以帮到你,让你尽快脱坑。

解决ScrollView嵌套RecyclerView出现item显示不全的问题的更多相关文章

  1. 关于ScrollView嵌套RecyclerView出现item显示不全的问题

    最近使用ScrollView时,发现里面嵌套Listview显示不全,试过重写Listview的onMeasure(),并没有起作用.然后将ListView换成RecyclerView后,高度还是显示 ...

  2. 解决ScrollView嵌套RecyclerView的显示及滑动问题

        项目中时常需要实现在ScrollView中嵌入一个或多个RecyclerView.这一做法通常会导致如下几个问题 页面滑动卡顿 ScrollView高度显示不正常 RecyclerView内容 ...

  3. 解决Scrollview 嵌套recyclerview不能显示,高度不正常的问题

    我们先看一个效果,问题说的就是中间的Grid效果在Scrollview 嵌套recyclerview显示问题,在Android Api 24是好的,不过在5,1,1版本(api 22)缺出现了问题 最 ...

  4. Android在开发中的使用技巧之解决ScrollView嵌套RecyclerView出现的系列问题

    根据已上线的app里总结出来的实用小技巧 相信大家都遇到过ScrollView嵌套RecyclerView或者RecyclerView嵌套RecyclerView来使用, 也会遇到一堆奇奇怪怪的问题, ...

  5. Android 解决ScrollView嵌套RecyclerView导致滑动不流畅的问题

    最近做的项目中遇到了ScrollView嵌套RecyclerView,刚写完功能测试,直接卡出翔了,后来通过网上查找资料和 自己的实践,找出了两种方法解决这个问题. 首先来个最简单的方法: recyc ...

  6. ScrollView嵌套GridView,GridView显示不全

    最近开发有个需求是以A-Z的方式区分全国城市(搜索功能),并实现字母索引的功能(有点类似微信,不过比较坑的是用的是GridView, 并且GridView上面还有几个LinearLayout). 详细 ...

  7. android 布局文件 ScrollView 中的 listView item 显示不全解决方案

    import android.content.Context;import android.util.AttributeSet;import android.widget.ListView; /** ...

  8. Android解决RecyclerView中的item显示不全方案

    最近的项目中实现订单确定页面.需要使用ScrollView嵌套RecyclerView,当RecyclerView中的item数量比较多时,就会出现item只显示一部分数据,并没有将用户勾选的商品数量 ...

  9. 一键解决ScrollView嵌套ListView仅仅显示一行的问题

    /** * 解决ScrollView嵌套ListView仅仅显示一行的问题 * * @param listView */ private void setListViewHeightBasedOnCh ...

随机推荐

  1. 胜利大逃亡 HDU1429 (bfs)

    最后两题算是这个专题最难的两题了 这题关键是标记数组 我一开始设置的是 四维的  第三维是朝向  第四维是钥匙个数 但是 不同的取法钥匙个数可能会重复   如:取ab钥匙和取ac钥匙都是两枚  导致w ...

  2. Linux系统命令符01

    ##重启下虚拟机 [root@bogon ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKN ...

  3. Ubuntu 之 atom 安装以及 常用配置

    安装方式如下: 打开终端,使用以下命令安装: sudo add-apt-repository ppa:webupd8team/atom sudo apt-get update sudo apt-get ...

  4. 设置cookie,获取cookie,删除cookie,修改cookie

    怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解 在操作cookie之前,先来看一下cookie长什么样. 可以看到,cookie是一个个键值对(“键=值”的形式)加上 ...

  5. win10搭建tensorflow-gpu环境

    昨天辛苦的配了GPU环境,记录一下防止以后还需要用到. 我配GPU的目的是用tensorflow的gpu来加速 不用ubuntu是因为一来不习惯,二来我不会配ubuntu的扩展显示器,就更不习惯了,习 ...

  6. VUE3.0升级与配置(跨域、全局scss变量等)

    1.检查本机vue版本 vue -V 2.升级vue3.0命令 npm install -g @vue/cli 3.创建完项目后,在项目根目录新增vue.config.js文件,插入代码(简洁) mo ...

  7. npm和yarn

    在2016年10月11日facebook公开了新的javascript包管理工具yarn,用来替代目前被广泛使用的npm(nodejs 自带的包管理工具)

  8. 在Windows下食用Linux工作环境(WSL+cmder)

    在Windows下食用Linux工作环境(WSL+cmder) 为什么要这么瞎搞呢?因为最近换了个硬盘,搞了个双系统,然后习惯性地按下 Ctrl+Alt+T 发现什么都没有召唤出来,然后忽然想起换了系 ...

  9. 洛谷P1144 最短路计数(SPFA)

    To 洛谷.1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M ...

  10. BZOJ.1935.[SHOI2007]Tree园丁的烦恼(CDQ分治 三维偏序)

    题目链接 矩形查询可以拆成四个点的前缀和查询(树套树显然 但是空间不够) 每个操作表示为(t,x,y),t默认有序,对x分治,y用树状数组维护 初始赋值需要靠修改操作实现. //119964kb 43 ...