使用ToolBar遇到的问题

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.
 */
@Deprecated
public 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导致的编译问题, 这个问题特别坑!!


ActionBarActivity


因为使用了"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, 请看这里

如有错误之处, 欢迎指正大笑


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值