Scrollview中嵌套recyclerview时,如何获得recyclerview的总高度?不然外层的scrollview没什么用
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

Scrollview中嵌套recyclerview时,如何获得recyclerview的总高度?
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
7条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
Exploring1024 2016-12-25 13:46关注你获得是计算的实际高度还是有问题的高度,我们知道,scrollview嵌套listview、gridview之类的有问题,所以如果你需要计算recycleview的高度,就需要知道
item的个数与item的高度,然后计算得出本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
chengxu_yuan2014 2016-12-22 08:37关注我个人意见,相对于嵌套来说,如果是listview的话不如用添加header和footer用起来方便,recyclerview的话也可以添加header,只不过不像listview有原生方法那么方便,另外也可以考虑运用多布局来完成,也很方便。。。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
昵称12806 2016-12-22 10:09关注RecyclerView或者ListView等在页面加载后除非外部条件发生改变重新设置其高度,否则他们的高度将一直和加载的时候一致,其实现机理并不是
为每个item都设定一个新的ViewItem,而是根据其界面上可能用到的item个数,初始化对应个数的itemView,然后之后当滚动的时候,只是把数
据条目按照滚动方向移动并显示到与之对应的item上。这样就可以在使用最少的View的情况下显示最多的数据。既能节约内存,又能提高响应速度。所以从上可以看出,List这一类的控件,是在有限的空间上,按需供应内容。好比商铺,他只有一个窗口给你,你也只能看到一个窗口。只有你想看的东西才会摆到窗口上,暂时不想看的都放到了后院的仓库里。
而ScrollView则是所有View全加载的。所以在ScrollView不适合显示List一类的东西。因为这会非常耗内存。
从上可以看出,如果ScrollView内套入ListView后,ListView的大小除非外部强制改变其大小,否则不会改变,也就是说ListView的高度不会因为其内部View发生改变而发出请求让ListView调整大小。ListView只会说地盘就这么大了,显示不下的内容,就不要显示了。
而ScrollView等其它大部分View在设置恰当的参数的时候,如果自己内部要显示的内容需求更多空间的时候就会主动对parent请求,parent就会重新要求其下的所有View各自看看需要多大地盘,然后parent在根据一定的策略进行设定。
所以ScrollView中嵌套ListView火RecycleView后,指望它里面的内容增加了就主动对ScrollView请求地盘是不行的。
如果要部分固定内容可以跟着List条目一起滚动,那么可以根据情况考虑加header或者footer
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
大虫子猪NO1 2016-12-23 04:01关注小伙子,你是不是要做RecyclerView铺满屏幕呀?
获得到手机屏幕高度,再减去其他控件高度。剩下的就是RecyclerView的高度啦。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
小小丶白 2016-12-23 07:42关注试着重写RecyclerView的onMeasure方法试试,
class MyRecyclerView extends RecyclerView { public MyRecyclerView(Context context) { super(context); } public MyRecyclerView(Context context, AttributeSet attrs) { super(context, attrs); } public MyRecyclerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
传说中的神话灬 2016-12-23 08:54关注建议监听RecyclerView的addOnScrollListener后自己记录onScrolled的dy,
同时给adapter加个registerAdapterDataObserver,
监听插入/删除/移动,自己加减前面记录的dy滚动值。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
yyy000112 2016-12-29 07:25关注具体思路就是获得每个item的高度,最后是根据获得item的数量乘以高度,等于把高度写死。至于获得item的高度是在setAdapter之后,用layoutManager.getHeight();获取,但这个方法有时候能获得准确的高度,有时候获取不到准确的,这个问题有待高人解答。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
- 2016-12-22 07:33回答 7 已采纳 你获得是计算的实际高度还是有问题的高度,我们知道,scrollview嵌套listview、gridview之类的有问题,所以如果你需要计算recycleview的高度,就需要知道 item的个数与
- 2019-03-18 16:50回答 2 已采纳 当然是去掉嵌套最好了。 1.去掉嵌套,使用adapter的addheader和addfooter来解决,见我的博客,简单的adapter[https://blog.csdn.net/weimingj
- 2017-02-14 13:31回答 8 已采纳 我也是发现有这个问题,不知道怎么回事!
- 2020-09-14 09:40奔跑的小蜗牛V5的博客 ScrollView嵌套RecyclerView时,显示不全,需要下拉才能看完全部, 解决办法:将RecyclerView的所有数据显示 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" ...
- 2015-08-03 09:32回答 0 已采纳 ScrollView中嵌套ListView 滑动冲突ScrollView+ListView禁止滑动----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠
- 2016-03-04 02:34回答 2 已采纳 低级错误,onTouchEvent的返回值没有修改。
- 2015-04-22 06:02回答 3 已采纳 看不懂你说的意思 1、ListView是直接计算高度什么意义,如果listview外层是写死高度的,只是说在界面初始化时节省刷新效率,不至于刷新多次。但和数据加载,缓存机制,回收机制没关系。 2、
- 2022-01-22 16:35m0_66264699的博客 通过上述分析可知,本文所遇到的问题通过外部拦截法,重写ScrollView的onInterceptTouchEvent()方法即可快速简单的解决。 public class FScrollView extends ScrollView { private float mLastXIntercept = 0f; ...
- 2017-04-25 09:11回答 3 已采纳 跟ListView很相似的 看你的需求 你可以设置RecyclerView的多种行视图功能 跟ListView差不多 不过RecyclerView更简洁 ``` @Over
- 2019-05-15 14:45回答 1 已采纳 这个问题已经自己找到方解决了
- 2017-04-13 07:58回答 2 已采纳 我用抽屉效果把webView放在单独的fragment中解决的,重写onTouchEvent我处理的可能不好会有点不流畅
- 2017-03-09 21:12盛大人很低调的博客 解决ScrollerView里嵌套 RecyclerVIew 时,RecyclerVIew 滑动不流畅的问题:public class MyScrollview extends ScrollView { private int downX; private int downY; private int mTouchSlop; public ...
- 2015-02-03 13:42回答 2 已采纳 已解决。因为introduction_module布局中最顶层的控件没有居中,加上android:gravity="center"后,再调margin就没问题。
- yangBIQ的博客 此问题一开始我以为是我在fragment当中,返回和移动的时候调用了adpater的notifyItemChange方法情况和notifyItemChanged(int position) 引起的返回时RecyclerView页面不自然的跳动 一样,但是发现我并没有调用过此...
- 2017-04-20 10:26LintLL的博客 摘要: Android 6.0 解决recyclerview 在 scrollview 中不能全部显示,高度不正常的问题。 这个问题困扰了我半天,国内百度上的资料非常的烂。根本无法解决问题。 在android 4 / 5 版本中 scrollview 包含了一...
- 2022-01-18 22:02m0_66264673的博客 import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.StaggeredGridLayoutManager; import com.bumptech.glide.Glide; import ...
- 2020-08-25 22:05pumpkin的玄学的博客 android:解决 ScrollView嵌套RecyclerView后无法惯性滑动的问题 这个只需要设置一下两个方法即可。 //解决 ScrollView嵌套RecyclerView后无法惯性滑动的问题 recyclerView.setHasFixedSize(true); recyclerView....
- 没有解决我的问题, 去提问
悬赏问题
- ¥15 Linux操作系统中的,管道通信问题
- ¥15 请问这张multisim图的原理是什么,这是一个交通灯,是课程要求,明天要进行解析,但是我们组没一个人会,所以急要,今天要
- ¥15 ansible tower 卡住
- ¥15 等间距平面螺旋天线方程式
- ¥15 通过链接访问,显示514或不是私密连接
- ¥100 系统自动弹窗,键盘一接上就会
- ¥50 股票交易系统设计(sql语言)
- ¥15 调制识别中这几个数据集的文献分别是什么?
- ¥15 使用c语言对日志文件处理
- ¥15 请大家看看报错原因,为啥会这样