记录那些年使用 Material Design 掉过的坑
来源:互联网 发布:mac双系统 文件 编辑:程序博客网 时间:2024/06/05 15:45
写在前面的话,本篇文章用于适用于刚接触Material Design或学生党,
扫地僧们请自行绕道。
- 自定义Toolbar 以include 形式引入的时候,根布局设置了toolbar 如
果使用ButterKnife注解会报空指针异常(掉坑指数3颗星) 例如:
base基类中抽离toolbar
具体通过include引入
@BindView(R.id.toolBar)
Toolbar toolBar;
通过 ButterKnife 获取id 会报空指针错误
解决办法
取消抽离基类中id的定义,直接绑定include 中 id 即可.例如:
基类布局中已取消id定义
具体布局中id修改为toolbar(当然这里可以自己定义其他,之所以用toolbar 是为了保持绑定一致性,有利于代码阅读)
然后使用@BindView(R.id.toolBar)
即可正常调用
Toolbar toolBar;
2 自定义Toolbar 和系统Toolbar冲突,启动程序后发现自定义Toolbar
位于 系统Toolbar 下面,并未替换掉系统自带Toolbar(掉坑指数3颗星)
例如: 当你辛辛苦苦的自定义toolbar布局写完,急匆匆的想看看效果这
是你期望的效果
实际效果确实这样的
这时候我想你内心的洪荒之力一定大吼一声what a fuck 。说好的自定义
toolbar呢,说好的自定义标题呢,特么逗我啊。这个道理告诉我骚年不
是码行深,是你太天真。不过不要紧,既然掉坑了,那就撸起袖子在爬起来。分析下,问题点可以看到,首先,自定义的Toolbar 和系统的一起出现,说明系统并没认可自定义Toolbar ,其次,自定义的标题也没有被替换。明白了问题点,那就针对问题点解决:
解决办法
1 重复的toolbar 可以在 style下面先取消系统的标题栏
这时候,想下,去掉了标题栏,如果这时候运行程序的话,那自定义的Toolbar 就会报空指针(不相信的骚年们,可以试下),既然取消了系统的那就意味着必须加上自己的Toolbar 可以使用setSupportActionBar(toolBar);
方法来设置
这个时候运行代码,你会发现神奇的一幕出现了,系统的Toolbar已经被替换了,就是这么神奇。
可是,我们还是发现了小问题,自定义的标题并没有被替换,怎么解决呢
首先在自定义TextView 加上系统toolbar风格样式style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
其次,在代码中屏蔽系统的toolbar的显示
再次运行代码,OK 搞定。
- 记录那些年使用 Material Design 掉过的坑
- 记录那些年使用 Material Design 掉过的坑(二)NavigationView中添加headerView 图片文字不显示问题
- Material Design的使用
- Material Design的使用
- Material Design的其他使用
- Android-Material Design的使用
- 了解Material Design的使用
- 记录那些年书写过的心情
- 记录那些曾感动过你的个人主页http://www.52design.com/theme/old_web/
- 那些年,与Material design不得不说的故事之TextInputLayout
- Material Design(2) -- UI色彩的使用
- material design UI颜色的使用
- Material Design: NavigationView FlaotingActionBar SnackBar的使用
- Material Design之CardView的使用
- Material Design之TextInputLayout、Snackbar的使用
- Material Design之FloatingActionButton的使用
- Material Design之FloatingActionButton的使用
- Android Material Design(1) RecyclerView 的使用
- usermod、chown和chmod的区别
- Python使用生成器实现生产者消费者模式
- 数据结构实验之二叉树二:遍历二叉树
- C++ 11为什么引入nullptr?
- 【安卓小笔记】SharedPreferences存取数据
- 记录那些年使用 Material Design 掉过的坑
- eXtremeDB荣获物联网大数据卓越奖提名
- centos7下nginx+uwsgi部署django项目问题记录
- 反射工具类【ReflectionUtils】,几本的JDK反射原始类的使用
- linux远程文件下载java.net.UnknownHostException解决办法
- linux 查看进程具体指向的目录
- git合并分支时的一种正常情况
- CVE-2017-0214
- object_getClass与self.class的区别