•前言
这两天,学完了 Fragment 的基础知识,正准备跟着《第一行代码》学习制作一个简易版的新闻应用;
嘀嘀嘀~~~
一声消息传来,像往常一样,打开 QQ,当我看到 QQ 界面的时候:
突发奇想,我是不是可以尝试制作一下这个界面,以及完成一些点击跳转的效果;
说干就干,先大致画了个草图,明确该如何分配空间:
忍不住叨叨两句,画这种嵌套的方形框, Notability 真香;
大体理了理思路:
将 ipad 界面一分为二,左边是一个权重为 1 的 LinearLayout
右边是一个权重为 2 的 LinearLayout
当点击左边消息列表时,右边动态添加一个 Fragment,思路是不是还蛮清晰的~~~
左右分工好后,接着开始细究左边内部的分工了;
我将左边的 LinearLayout 分成了三块,就暂且叫他们 a,b,c;
在设计 a 的时候,也就是这一块:
最左边的头像我用 ImageView 控件体现,中间的,暂且用 TextView 控件实现;
最右边的 有一个弹出菜单,当然选择 menu 来实现喽;
当开始敲 menu 控件的时候,突然发现,我好像没怎么深入的学习过,so,一场恶补开始了;
翻阅了各种各样的博客,终于,完成了这篇惊世之作——在活动中使用 menu;
可是,我却翻车了,怎么也实现不了QQ里的这种效果;
不放弃的我又去找度娘聊天去了,还好找到了一篇,快点我;
ToolBar 是什么玩意????
没办法,接着肝;
苦熬一上午,终于肝明白了,以此记录;
接下来要步入正题喽
~
•简介
Toolbar 是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ;
Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。
与 Actionbar 相比,Toolbar 明显要灵活的多。
它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。
除此之外,在设计 Toolbar 的时候,Google也留给了开发者很多可定制修改的余地;
这些可定制修改的属性在API文档中都有详细介绍,如:
- 设置导航栏图标;
- 设置App的logo;
- 支持设置标题和子标题;
- 支持添加一个或多个的自定义控件;
- 支持Action Menu;
•准备工作
首先,新建一个项目,选择 Empty Activity 这个选项,并命名为 Tool Bar;
进入 Project 模式,点击 app/src/main/,找到 AndroidManifest.xml 文件;
找到这句话 android:theme="@style/Theme.ToolBar"> ;
可以看到,这里使用 android:theme 属性指定了一个 Theme.TestToolBar 的主提。
那么,这个 Theme.TestToolBar 又是在哪里定义的呢?
按住 ctrl,鼠标点击 "@style/Theme.ToolBar"> 这句话:
通过快捷键 ctrl,Android Studio 引领我们找到了这句话的出处;
在我这里,这个文件在 themes.xml 中:
而并不是在 res/values/styles.xml 中,《第一行代码》以及好多优质博客都声明在 styles.xml 文件中;
这是为什么呢?
来看这句话