RecyclerView嵌套RecyclerView 条目自动上滚的bug

RecyclerView常见问题解决方案,RecyclerView嵌套自动滚动,RecyclerView 高度设置wrap_content 无作用等问题

发表于2017/6/21 17:30:42  3413人阅读

分类: Android知识点

1,ScrollView或者RecyclerView1 嵌套RecyclerView2  进入页面自动跳转到recyclerView2上面页面会自动滚动
貌似是RecyclerView 自动获得了焦点
两种解决办法
一,recyclerview去除焦点
recyclerview.setFocusableInTouchMode(false);
recyclerview.requestFocus();
二,在代码里面 让处于ScrollView或者RecyclerView1 顶端的某个控件获得焦点即可
比如顶部的一个textview
tv_goodsName.setFocusableInTouchMode(true);  
tv_goodsName.requestFocus(); 

2,RecyclerView 高度设置wrap_content 无作用的bug,在listview中这么设置会不显示RecyclerView
解决方案:
这是RecyclerView兼容包的bug,23.2.0后官方已经修复了。
所以直接在gradle里设置用23.2.0及以上的RecyclerView:
compile 'com.android.support:recyclerview-v7:23.2.0'

PS:如果修改后构建时报了其他奇怪的错,可以试试把兼容包也升级一下:
compile 'com.android.support:cardview-v7:23.2.0'
compile 'com.android.support:recyclerview-v7:23.2.0'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:design:23.2.0'

3,RecyclerView 条目布局宽度设置match_parent无效果的问题解决 
 //这里为了解决recycleview不能撑满全屏的问题,这里layoutManager不管你布局里是否设置,都不准确,所以需要在代码里
 //重新设置MATCH_PARENT
        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()) {
            @Override
            public RecyclerView.LayoutParams generateDefaultLayoutParams() {
                return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT);
            }
        };
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        xrecyclerview.setLayoutManager(layoutManager);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值