当前视点!android.support-v4:25.4.0升级版
com.android.support:support-v4:25.4.0 升级为: com.android.support:support-v4:28.0.0
1.统一修改为 28.0.0 后编译报错
编译时各种稀奇古怪的错,如org.gradle.tooling.BuildException: Failed to process resources, see aapt output above for details.修改 compileSdkVersion = 28即可
(资料图片仅供参考)
2.设置TabLayout点击无水波纹效果,失效
之前使用的属性为:app:tabBackground="@android:color/transparent"现在需要使用属性:app:tabRippleColor="@android:color/transparent"
3.通过反射修改 TabLayout 下划线宽度,失效
因新的api字段名和之前的不一致或没有该字段导致。 28.0.0后,可通过api直接实现TabLayout固定宽度:
app:tabIndicator="@drawable/shape_tab_indicator"
关键源码 DrawableCompat.java:
public static Drawable wrap(@NonNull Drawable drawable) {if (VERSION.SDK_INT >= 23) {return drawable; } else if (VERSION.SDK_INT >= 21) {return (Drawable)(!(drawable instanceof TintAwareDrawable) ? new WrappedDrawableApi21(drawable) : drawable); } else {return (Drawable)(!(drawable instanceof TintAwareDrawable) ? new WrappedDrawableApi14(drawable) : drawable); } }
4.通过反射为单独TabLayout.Tab设置点击事件,失效
private void setTabClick(TabLayout tabLayout) {for (int i = 0; i < tabLayout.getTabCount(); i++) {TabLayout.Tab tab = tabLayout.getTabAt(i); if (tab == null) {return; } //这里使用到反射,拿到Tab对象后获取Class Class c = tab.getClass(); try {//Filed “字段、属性”的意思,c.getDeclaredField 获取私有属性。 //"mView"是Tab的私有属性名称(可查看TabLayout源码),类型是 TabView,TabLayout私有内部类。 // 25.4.0// Field field = c.getDeclaredField("mView"); // 28.0.0 Field field = c.getDeclaredField("view"); //值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。 field.setAccessible(true); final View view = (View) field.get(tab); if (view == null) {return; } view.setTag(i); view.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {//这里就可以根据业务需求处理点击事件了。 } }); } catch (Exception e) {e.printStackTrace(); } } }
5.自己为了修改TabLayout的宽度的 MyTabLayout ,下划线没有了
替换为最新的 TabLayout,增加属性即可
app:tabIndicator="@drawable/shape_tab_indicator"
6.通过CollapsingToolbarLayout实现的滑动置顶
上滑时,之前滑动一小段松手会快速置顶,速度快时会感觉到卡顿现象。最新的不会,滑动一点就是一点(可能不好表达?)。下滑时,之前惯性滑动后,置顶布局会定在那里,需要再次滑动才会下来。最新的直接会下来。
更新后显然更好用了,?
7.通过反射得到CollapsingToolbarLayout中标题的画笔,失效
之前反射得到的字段名更改
/** * 通过反射得到CollapsingToolbarLayout中标题的画笔。通过它得到标题变化中的颜色 */ @RequiresApi(api = Build.VERSION_CODES.KITKAT) public static TextPaint getCollapsingTitlePaint(CollapsingToolbarLayout collapsing) {try {Class clazz = Class.forName("android.support.design.widget.CollapsingToolbarLayout"); // 25.4.0// Field fieldTextHelper = clazz.getDeclaredField("mCollapsingTextHelper"); // 28.0.0 Field fieldTextHelper = clazz.getDeclaredField("collapsingTextHelper"); fieldTextHelper.setAccessible(true); Object obj = fieldTextHelper.get(collapsing); Class clazzHelper = Class.forName("android.support.design.widget.CollapsingTextHelper"); // 25.4.0// Field fieldTextPaint = clazzHelper.getDeclaredField("mTextPaint"); // 28.0.0 Field fieldTextPaint = clazzHelper.getDeclaredField("textPaint"); fieldTextPaint.setAccessible(true); return (TextPaint) fieldTextPaint.get(obj); } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) {e.printStackTrace(); return null; } }
8.其他
引入的三方库可能不兼容 28.0.0设置TabLayout的字体大小,对应的属性为app:tabTextAppearance使用style时,遇到app:tabIndicator="@drawable/shape_tab_indicator"属性,可这样使用
match_parent44dp@drawable/shape_tab_indicator@color/color_black_title@style/MyTabTextAppearance" _ue_custom_node_="true">12sp" _ue_custom_node_="true">
标签:
相关推荐:
最新新闻:
- nginx基础知识:集群、负载均衡、高可用性
- DB2错误码记录 00000000SQL语句错误码及黑色标注
- 网易163邮箱无法使用第三方客户端登录问题怎么解决?解决方法如下
- 当前视点!android.support-v4:25.4.0升级版
- 焦点要闻:系统虚拟化是什么?计算机系统虚拟化介绍
- 从第一场比赛到最后一场比赛 阿里到底用了多长时间?|当前观察
- 【全球新要闻】免费申请6位QQ及其它骗术的真相 冒充腾讯公司的网站有哪些?
- pci和pcie的区别是什么?插槽区别规格详解
- 环球新动态:谷歌浏览器怎么设置主页?谷歌浏览器主页的设置方法
- 焦点热门:监控录像数据丢失了怎么办?如何恢复?
- 机械键盘各种轴的区别 机械键盘介绍
- 环球今热点:一键还原精灵软件——WindowsServer2003
- word表格跨页断开怎么办?word跨页断开的两种方法介绍-动态焦点
- 笔记本电脑蓝牙在哪里打开?台式机蓝牙在哪里打开?
- 怎么清理内存垃圾方法?手机内存不足清理内存方法
- 桌面快捷图标左下角有问号怎么办?解决办法|速读
- 电脑鼠标常见故障分析与维修方法 鼠标故障排除分析
- 如何在网上隐藏自己的IP地址?隐藏IP地址的方法
- FaceApp怎么用?FaceApp怎么玩? |世界热讯
- 环球快讯:外链是什么?外链的形式有哪些?
- 松下fz40相机如何建立文件夹?照片文件命名规则
- 六类配线架接法图解 六类配线架常见的连接方式
- 空气净化效能CADR值多少钱?
- 电脑复制粘贴不了是什么原因?电脑无法使用复制粘贴功能
- 笔记本需要散热底座吗?散热底座哪种好?
- 为什么我的网站流量这么低?湖盟云防火墙中小企业版上线
- 机箱电源线整理方法 机箱线材整理技巧
- 光波炉有哪些危害呢?光波炉危害分析
- 苹果快捷指令怎么调出来?苹果13快捷指令在哪里打开?
- 人体工学鼠标哪款好?人体工学鼠标四大热门推荐-热文
- 电脑电源怎么测试稳定性?怎么测试电脑电源好坏?
- 什么是高防服务器?高防服务器如何辨认?
- brother标签打印机使用教程 使用标签打印机注意事项
- 硬盘坏道怎么屏蔽?隐藏硬盘坏道方法
- 焦点播报:qq聊天背景怎么设置?qq聊天背景设置方法
- cmos是什么意思?cmos全面分析
- 环球观天下!雷柏1090多少钱?雷柏1090性能评测
- QQ帐号怎么紧急冻结?如何避免帐号被非法利用?_全球报资讯
- Win10系统怎么找到Explorer.exe进程的位置?Win10系统找到Exploer.exe进程位置的方法_环球微头条
- 网页视频如何保存到电脑上?下载网页视频详细方法
- 世界动态:Word怎么输入对号和方框对勾?输入技巧
- 无法格式化u盘怎么办?解决不能格式化的方法
- chm是什么文件格式?苹果手机怎么打开chm格式的文件
- mac地址是什么意思?MAC地址的结构
- 显示屏黑屏是什么原因?原来这些原因都会引起黑屏
- 动态焦点:explorer.exe是什么进程?explorer.exe应用程序错误的解决办法
- 焦点热讯:word小技巧:按住键盘上的ALT键
- YY会员怎么开?YY月费会员怎么转YY年费会员?-全球头条
- 刀锋铁骑近战怎么操作?刀锋铁骑近战操作技巧 环球新资讯
- 今日热门!网易云音乐有pc版吗?网易云音乐pc版下载
- 中国邮政兔年邮票遭网友吐槽:小朋友吓哭了
- 环球观天下!crt是什么意思?Microsoft开发的C/C++标准库实现
- 环球百事通!自动驾驶之路面缺陷检测 路面缺陷检测算法演示
- 计算氢原子基态能级 积分可分类动能和势能怎么计算?
- night24_Excel 2010条件格式梦Night 如何在列表中分隔日期?|环球微资讯
- hp服务器电话官方网站怎么查询?查询步骤 环球热闻
- macOS如何给文件加密?macOS文件加密技巧
- 如何下载顺义区卫星地图高清版大图?下载步骤-全球信息
- 当前信息:新手程序员的代码写不好怎么办?38条PHP优化代码
- 数学小知识汇总 矩阵范数、梯度和梯度场的区别-全球资讯
- 逐鹿工具显示服务器错误连接不上怎么解决?解决方法如下
- 如何在oracle中导入dmp数据库文件?
- 如何区分光伏系统中的“李逵”与“李鬼”?
- 粘粘世界worldofgoo攻略 《粘粘世界 world of goo》怎么下载?:全球动态
- 【雅思阅读】最好的雅思课程-阅读部分全集
- 【全球时快讯】shutdown和close的区别 Sockfd如何关闭socket的描述符?
- 挪威国宝级女歌手:一首炽热的英文情歌-当前看点
- 环球即时:微信如何开通直播?微信开通直播的方法
- 网络广告类型有哪些?网络营销广告的类型(CPC、CPM、CPA、CPS, CTR)|焦点快播
- 《英雄联盟比赛服》怎么下载?英雄联盟比赛服-观点
- 马赫带效应是什么?马赫带效应的定义
- 每日速看!松下电饭煲将告别日本制造 移交给中国工厂生产
- 《星空》玩家将有前往地球的机会 那地球会是什么样?:天天速看料
- 阿凡达2全球票房破10亿美元 走势优于预期
- 多人弹幕射击游戏《黑白之地》Steam页面上线 支持简体中文_当前关注