使用ToolBar遇到的问题
来源:互联网 发布:多益网络运营笔试题 编辑:程序博客网 时间:2024/04/30 01:58
Android 5.0 出来已经有一段时间了, 也出来更多新特性, 如"Material Design", 新控件等等
今天使用Toolbar的时候遇到了一系列问题, 记录如下:
1. 启动app就崩溃, 错误信息: AppCompat does not support the current theme features
自定义Theme时直接继承了Theme.AppCompat.Light
要使用ToolBar的话, 需要继承 Theme.AppCompat.Light.NoActionBar
由于使用ToolBar需要去掉ActionBar.
2. 启动app就崩溃, 错误信息: A TaskDescription's primary color should be opaque
信息很明显, 就是style.xml中的"colorPrimary"必须是不透明的
android中八位十六进制的颜色前两位就是定义透明度的, 从00~FF, 即完全透明到不透名, 此处直接写FF
3. 继承ActionBarActivity时, 发现ActionBarActivity有删除线了, 也就是过期了, 建议使用AppCompatActivity
可以看到ActionBarActivity是直接继承了AppCompatActivity, 如下:
package android.support.v7.app;/** * @deprecated Use {@link android.support.v7.app.AppCompatActivity} instead. */@Deprecatedpublic class ActionBarActivity extends AppCompatActivity {}
4. 定义Theme时, "android:" 前缀, 到底哪个需要哪个不需要, 傻傻的分部清楚
一个基本原则就是: 属性在系统中已经定义的需要"android:"前缀, 如果是在appcompat-v7中定义的, 就不需要前缀 (这个比较好解决, 因为写错AndroidStudio会有提示)
可以看一看appcompat-v7中关于attr和style的定义, 下面是ToolBar用到的相关属性:
values/styles.xml文件
values-v21/styles.xml文件
5. 由于更新了SDK导致的编译问题, 这个问题特别坑!!
因为使用了"Canary Channel"获取了最新特性, 因此被当了小白. AndroidStudio的稳定版的的build-tools命名和linux版本命名类似, 诸如21.0.0, 22.0.1.......之类的
而测试版的build-tools添加了字母, 诸如: "23.0.0 rc2", "23.0.0 rc3"之类. 稳定版的build-tools更新后原来的还会在你的磁盘上(SDK_HOME/build-tools/目录下),
是不会删掉的. 然而测试版的build-tools会删掉原来的, 那没问题来了, 每个module下面的build.gradle文件中的指定的build-tools还是原来的build-tools没有更新,
原来的build-tools已经删掉了!!
这还不是最坑的!! 我更改了build.gradle配置, 继续编译, 错误依旧!!! 折腾一番, 终于明白了, 所有module下的build.gradle全部要改过来
build.gradle指定build-tool的地方如下:
要学习gradle, 请看这里
如有错误之处, 欢迎指正
- 使用ToolBar遇到的问题
- 使用Toolbar遇到的问题
- 使用Toolbar遇到的问题
- ToolBar使用遇到的问题
- Toolbar使用过程中遇到的问题
- 关于Toolbar使用时遇到的问题
- Toolbar menu 遇到的问题
- Toolbar menu 遇到的问题
- 关于toolbar与menu配合使用遇到的问题
- 使用toolbar遇到的一个错误
- CoordinatorLayout实现上滑隐藏ToolBar遇到的问题
- 关于写toolbar加入Menu时候遇到的问题
- 使用ToolBar出现的一个问题
- toolbar使用问题
- Toolbar所遇到的坑
- toolbar遇到问题和解决方式
- ToolBar的使用及overflow的定制问题
- ToolBar控件的使用
- 读书笔记之《代码之髓》 1
- 正直角三角形
- Androidの自定义对话框AlertDialog(一)
- c++类中的虚函数
- 一步一步在sqlserver中创建分区表
- 使用ToolBar遇到的问题
- Core Animation - 2
- centos6安装eclipse
- OC基础回顾(一)Objective-C是对C语言的扩展
- 需求分析说明书和需求规格说明书
- OC基础之----NSDictionnary
- autocommit=0引起的业务hang住
- C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)
- Binder机制解析(一)