为了处理CoordinatorLayout + AppBarLayout + ViewPager滑动出现回弹和卡顿的现象,自定义的一个AppBarLayoutBehavior,但在运行过程中会出现java.lang.RuntimeException: Could not inflate Behavior subclass

刚开始的布局如下:

<android.support.design.widget.CoordinatorLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><android.support.design.widget.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/color_F8F8F8"app:layout_behavior=".ui.widget.AppBarLayoutBehavior"app:elevation="0dp">..........</android.support.design.widget.AppBarLayout>..........
</android.support.design.widget.CoordinatorLayout>

问题的原因就是直接引用了这个路径

static Behavior parseBehavior(Context context, AttributeSet attrs, String name) {if (TextUtils.isEmpty(name)) {return null;}final String fullName;if (name.startsWith(".")) {// Relative to the app package. Prepend the app package name.fullName = context.getPackageName() + name;} else if (name.indexOf('.') >= 0) {// Fully qualified package name.fullName = name;} else {// Assume stock behavior in this package (if we have one)fullName = !TextUtils.isEmpty(WIDGET_PACKAGE_NAME)? (WIDGET_PACKAGE_NAME + '.' + name): name;}try {Map<String, Constructor<Behavior>> constructors = sConstructors.get();if (constructors == null) {constructors = new HashMap<>();sConstructors.set(constructors);}Constructor<Behavior> c = constructors.get(fullName);if (c == null) {final Class<Behavior> clazz = (Class<Behavior>) context.getClassLoader().loadClass(fullName);c = clazz.getConstructor(CONSTRUCTOR_PARAMS);c.setAccessible(true);constructors.put(fullName, c);}return c.newInstance(context, attrs);} catch (Exception e) {throw new RuntimeException("Could not inflate Behavior subclass " + fullName, e);}}

这个是获取文件路径的逻辑,如果以.开头将会取packageName + 名称。如果拼接完成后不等于这个文件的绝对路径将会抛出异常,所以要使用behavior的完整路径
更加规范的做法是配置到string.xml文件中

Could not inflate Behavior subclass相关推荐

  1. 红橙Darren视频笔记 Behavior的工作原理源码分析

    主要coordinatorlayout的代码来自coordinatorlayout-1.0.0-sources.jar 本文从源码介绍 CoordinatorLayout 的 behavior 怎么工 ...

  2. 红橙Darren视频笔记 CoordinatorLayout:实现自定义behavior

    效果: 目标:利用CoordinatorLayout实现自定义behavior ,顶部的TitleBar和底部的ActionBar实现能够随着手势自由显示和隐藏 activity中使用了recycle ...

  3. 自定义Behavior的艺术探索-仿UC浏览器主页

    出处:http://www.jianshu.com/p/f7989a2a3ec2 前言&效果预览 最近几个周末基本在研究CoordinatorLayout控件和自定义Behavior当中,这期 ...

  4. Android Design Support Library--FloatingActionButton及其Behavior的使用

    为什么80%的码农都做不了架构师?>>>    关于使用 其实我相信很多人都用过了Material Design控件了,但是还是要说一下,毕竟有些人接触的晚一些,一些人接触的早一些, ...

  5. Android无法找到Behavior类

    androidx Could not inflate Behavior subclass 在项目升级androidx的过程中,发生Behavior找不到的问题,提示ClassNotFoundExcep ...

  6. 源码看CoordinatorLayout.Behavior原理

    在上一篇博客CoordinatorLayout高级用法-自定义Behavior中,我们介绍了如何去自定义一个CoordinatorLayout的Behavior,通过文章也可以看出Behavior在C ...

  7. Android开发之CoordinatorLayout使用详解一

    2019独角兽企业重金招聘Python工程师标准>>> 主页:http://cherylgood.cn/20170302/51 官网描述为:CoordinatorLayout是一个增 ...

  8. Floating Action Button-Android M新控件

    概述 浮动操作按钮是Material Design 中推出的控件之一 浮动操作按钮 (简称 FAB) 是: "一个特殊的promoted操作案例.因为一个浮动在UI之上的圆形图标而显得格外突 ...

  9. Android--CoordinatorLayout源码分析及NestedScrolling机制

    之前介绍了CoordinatorLayout的基本使用,我们需要一个滚动控件,另外需要给观察者一个Behavior来监听滚动控件的滚动,今天来分析下CoordinatorLayout具体是怎么实现的, ...

最新文章

  1. 成为顶尖算法专家需要知道哪些算法?
  2. JS弹出窗口窗口的位置和大小
  3. 条件概率分布_条件概率
  4. Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法
  5. 光耦驱动单向可控硅_光耦继电器在信号传输方面的优势!
  6. lunix mysql创建视图_Linux命令:MySQL系列之六--VIEW视图/mysql -e
  7. 在制作Windows虚拟机模板时的常用技巧
  8. POJ1069 The Bermuda Triangle DFS
  9. SpringBoot整合JpaMapper实现基于mybatis的快速开发
  10. 贵州贵安新区试点大数据精准扶贫运营管理
  11. 你的抖音直播间没有人?爆播家抖音卡直播广场详细教程(2021最新)
  12. 杭州电子科技大学计算机研究生复试线,2018年杭州电子科技大学考研复试线和调剂要求...
  13. 巴比特 | 元宇宙每日必读:HTC 宣布推出首款元宇宙手机,售价约2700元人民币,都有哪些新玩法?...
  14. matlab中希腊字母相除,如何在matlab中输入希腊字母
  15. SLAM数据集、RGB-D数据集
  16. C# Aplayer开发笔记(一)
  17. 通过js来实现一元二次方程的效果,输入a,b,c系数后可计算出x1和x2的值
  18. Android 双开沙箱 VirtualApp 源码分析(一)
  19. 走进他人内心的七项修炼
  20. python 打开文件夹所有文件_python遍历文件夹下所有文件

热门文章

  1. 教你如何用插件加速视频播放
  2. 贝叶斯在计算机视觉中的应用,KNN与朴素贝叶斯在计算机视觉的鱼苗计数中的应用探索.doc...
  3. Gateway GPRS support node (GGSN) 相关资料
  4. HanLP《自然语言处理入门》笔记--1.新手上路
  5. 百度搜索引擎结果网址参数_反馈搜索结果用时(rsv_sug4)
  6. 大数据产业链结构_大数据产业链包含那几个应用环节?
  7. Nginx使用的php-fpm的三种进程管理方式及优化 pm.start_servers pm.max_children参数说明
  8. java类实现接口关键字_一个Java类实现一个接口使用的是implements关键字。
  9. Keil MDK5工程文件不可修改(文件符号上带一个黄色的钥匙)
  10. 自媒体创作没思路?这4款内容创作爆文神器助你摆脱内容瓶颈!