No adapter attached; skipping layout 原因、解决办法

简介: No adapter attached; skipping layout 原因、解决办法

当问题出现的时候不光要解决还要知道为什么

看一下源码:


void dispatchLayout() {
        if (mAdapter == null) {
            Log.e(TAG, "No adapter attached; skipping layout");
            // leave the state in START
            return;
        }
        if (mLayout == null) {
            Log.e(TAG, "No layout manager attached; skipping layout");
            // leave the state in START
            return;
        }
        ....
      }

当Adapter和LayoutManager 都没有的时候,就会抛出No … attached; skipping layout 异常


众所周知,RecyclerView的出现不光可以代替ListView,也可以代替GridView,所以啊大胸弟,你在用的时候要告诉RecyclerView你要代替的是哪个啊,就是所谓的初始化配置,不配置就会警告报错、不显示数据

分割线可以不设置,动画也可以不设置,但是LayoutManager必须设置。


随意示范一下

 

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        mRecyclerView.setLayoutManager(linearLayoutManager);

上面用的是LinearLayoutManager的第二个构造方法,必要的参数都有了,当然也可以用第一个构造,贴一下这个构造的代码:


/**
     * @param context       Current context, will be used to access resources.
     * @param orientation   Layout orientation. Should be {@link #HORIZONTAL} or {@link
     *                      #VERTICAL}.
     * @param reverseLayout When set to true, layouts from end to start.
     */
    public LinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
        setOrientation(orientation);
        setReverseLayout(reverseLayout);
        setAutoMeasureEnabled(true);
    }

或者 简单版,默认 VERTICAL


mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));

 

/**
     * Creates a vertical LinearLayoutManager
     *
     * @param context Current context, will be used to access resources.
     */
    public LinearLayoutManager(Context context) {
        this(context, VERTICAL, false);
    }


当然,不要忘了 mRecyclerView.setAdapter(mAdapter);


几种LayoutManager


LinearLayoutManager 线性布局管理器


GridLayoutManager 表格布局管理器


StaggeredGridLayoutManager 瀑布流布局管理器

目录
相关文章
|
Android开发
Android系统自带样式(android:theme)解析
做Android开发时经常会修改系统默认的主题样式,在android的sdk  安装目录data\res\values\themes.
2760 0
|
SQL 缓存 安全
Android ORM 框架之 greenDAO
Android ORM 框架之 greenDAO
951 0
|
前端开发 JavaScript iOS开发
精选11款炫酷的前端动画特效分享(附在线演示)
分享11款非常不错炫酷的前端特效源码 其中包含css动画特效、js原生特效、svg特效等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源
|
机器学习/深度学习 人工智能 自然语言处理
Hugging Face 的应用
Hugging Face 是一家专注于开发机器学习应用工具的公司,以其用于自然语言处理的 Transformers 库而闻名,同时提供了一个平台让用户分享机器学习模型和数据集。Transformers 库支持多种任务,如文本分类、生成、总结等,并兼容 PyTorch、TensorFlow 等框架。Hugging Face 还推出了 Text Generation Inference 工具包,用于高效部署大规模语言模型。在国内,百度千帆和魔搭社区等平台也在提供类似的服务和支持。
|
XML Java Android开发
Android Studio App开发之实现底部标签栏BottomNavigationView和自定义标签按钮实战(附源码 超详细必看)
Android Studio App开发之实现底部标签栏BottomNavigationView和自定义标签按钮实战(附源码 超详细必看)
1467 0
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
1387 1
|
前端开发 JavaScript API
惊呆了!这些前端技术竟然能让你的网站实现无缝滚动效果!
【10月更文挑战第30天】本文介绍了几种实现网页无缝滚动的技术,包括CSS3的`scroll-snap`属性、JavaScript的Intersection Observer API以及现代前端框架如React和Vue的动画库。通过示例代码展示了如何使用这些技术,帮助开发者轻松实现流畅的滚动效果,提升用户体验。
1151 29
|
Java 开发者 Kotlin
|
Java
【Java】已解决java.util.ConcurrentModificationException异常
【Java】已解决java.util.ConcurrentModificationException异常
1249 0
|
存储 XML 移动开发
应用层协议设计 ProtoBuf
应用层协议设计 ProtoBuf

热门文章

最新文章