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

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);

原文地址:https://www.cnblogs.com/xgjblog/p/8260061.html

时间: 2024-10-16 22:50:02

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

ScrollView(RecyclerView等)为什么会自动滚动原理分析,还有阻止自动滑动的解决方案

引言,有一天我在调试一个界面,xml布局里面包含Scroll View,里面嵌套了recyclerView的时候,界面一进去,就自动滚动到了recyclerView的那部分,百思不得其解,上网查了好多资料,大部分只是提到了解决的办法,但是对于为什么会这样,都没有一个很好的解释,本着对技术的负责的态度,花费了一点时间将前后理顺了下 1.首先在包含ScrollView的xml布局中,我们在一加载进来,ScrollView就自动滚动到获取焦点的子view的位置,那我们就需要看下我们activity的o

Android自动滚动 轮播循环的ViewPager

主要介绍如何实现ViewPager自动播放,循环滚动的效果及使用.顺便解决ViewPager嵌套(ViewPager inside ViewPager)影响触摸滑动及ViewPager滑动速度设置问题. 项目已开源Android Auto Scroll [email protected],欢迎star和fork. 示例APK可从这些地址下载:Google Play,  360手机助手,  百度手机助手,  小米应用商店,  豌豆荚 示例代码地址见AutoScrollViewPagerDemo,效

图片自动滚动,循环播放Android auto-scroll-view-pager(转载)

详细可看: http://uisource.com/project/auto-scroll-view-pager/ 示例代码可看: https://github.com/Trinea/android-demo/blob/master/src/cn/trinea/android/demo/AutoScrollViewPagerDemo.java 使用: 1.引入library 2.调用: ①布局定义 <cn.trinea.android.view.autoscrollviewpager.AutoS

揭开RecyclerView的神秘面纱(二):处理RecyclerView的点击事件

前言 上一篇文章揭开RecyclerView的神秘面纱(一):RecyclerView的基本使用中,主要讲述了RecyclerView的基本使用方法,不同的布局管理器而造成的多样化展示方式,展示了数据之后,一般都会与用户进行交互,因此我们需要处理用户的点击事件.在ListView和GridView提供了onItemClickListener这个监听器,然而我们查找RecyclerView的API却没有类似的监听器,因此我们需要自己手动处理它的点击事件. 以下提供两种方法来实现处理Recycler

怎么停止LogCat的自动滚动?

============问题描述============ 真机调试时,想看看所有的调试消息,但是Logcat老是自动滚动,就是有新的调试消息时,就会自动向上滚动,把我现在看的滚没了,真是不胜其烦,但是又找不到关闭自动滚动的方法,啊啊啊,烦死了... ============解决方案1============ 在LogCat窗口右侧有一个+符号,新建Log Filter,设置好by Log Tag的值,这个值要与Log输出的Tag值一样,这样这个新建的窗口里面就只会显示你的Log了 =======

iOS中scrollview自动滚动的实现

http://bbs.csdn.net/topics/390347330 原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollview,但是无法实现. 一种解决方案见下边,更多解决方案见:http://ask.csdn.net/questions/374 .h文件 Objective C code ? 1 2 3 4 5 6 7 8 9  @interface Interface1 : UIViewController {   

垂直自动滚动问题(第一行固定,其他行自动滚动)有人知道怎么实现吗?

============问题描述============ 大家好,小弟想做一个公告牌的Android程序,想实现如下效果:第一行(标题行)固定,其他行(详细内容)自动垂直滚动,应该怎么做呢?网上搜了相关资料,都没有这方面的完整例子 网上找到一个可以垂直滚动的代码如附件AutoScroll(下载地址:http://download.csdn.net/detail/tc310/7887641),这个可以垂直滚动,但是确实所有内容都滚动,无法把第一行(标题)固定显示. 我把布局文件改成如下,发现运行报

Hexo 基本命令&amp;常见问题解决方案

查看 npm 安装各 hexo 插件的情况 12345678910111213 npm ls --depth 0[email protected] /IdeaProjects/github/bmwu.github.io├── [email protected]├── [email protected]├── [email protected]├── [email protected]├── [email protected]├── [email protected]├── [email prot

delphi 自动滚动到最底端scroll

自动滚动到最底端scroll Uses MSHTML;{$R *.dfm}var  ScrollPos: integer=0;procedure TForm1.Button1Click(Sender: TObject);begin  inc(ScrollPos, 10);  if WebBrowser1.Document <> nil then    (WebBrowser1.Document as IHTMLDocument2).parentWindow.scroll(0,ScrollPos