我是靠谱客的博主 灵巧鞋垫,最近开发中收集的这篇文章主要介绍使用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, 请看这里

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


最后

以上就是灵巧鞋垫为你收集整理的使用ToolBar遇到的问题的全部内容,希望文章能够帮你解决使用ToolBar遇到的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部