前言

本文为菜鸟窝作者刘婷的连载。"商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现。

现在很多的 APP 里面都有自己的自定义风格,特别是京东商城中自定义的头部布局——自定义的 Toolbar 效果非常不错,看上去很美观,其效果图如下。

想要定义出这样的效果并不是很难,主要是要对控件的属性熟悉以及对控件的熟练使用,下面就先简单了解下 Toolbar 的基本属性以及简单使用。

什么是 Toolbar

1. Toolbar 的解释

Toolbar 是 android 5.0 引入的一个新控件,可以理解为是 ActionBar 的升级版,大大扩展了 Actionbar,使用更灵活,不像 actionbar 那么固定,Toolbar 更像是一般的View元素,可以被放置在 view 树体系的任意位置,可以应用动画,可以跟着 scrollView 滚动,可以与布局中的其他 view 交互。

2. Toolbar 的基本属性

1. xml style属性:

colorPrimaryDark:状态栏的颜色(可用来实现沉浸效果)。
colorPrimary: Toolbar 的背景颜色 (xml中用android:background=”?attr/colorPrimary”指定)。
android:textColorPrimary:Toolbar中文字的颜色,设置后Menu Item 的字体颜色也会跟随。
colorAccent:EditText 正在输入时,RadioButton 选中时的颜色。

2. xml 属性:

app:title=”App Title”:Toolbar 中的 App Title。
app:subtitle=”Sub Title” :Toobar 中的小标题。
app:navigationIcon=”?attr/homeAsUpIndicator” : 导航图标,比如返回图标(与 Logo 不同)。

Toolbar 的简单使用

1.首先在布局 layout 文件中写入引用代码。

  <android.support.v7.widget.Toolbar
android:id="@+id/home_toolbar_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:navigationIcon="?attr/homeAsUpIndicator"
</android.support.v7.widget.Toolbar>

2.然后在 Activity 中声明定义该控件,注意 Activity 必须是继承于 AppCompatActivity。

toolbar=(Toolbar)findViewById(R.id.home_toolbar_main);

3.声明定义之后还需要配置一下,设置 toolbar。

setSupportActionBar(toolbar);

4.添加标题。

setTitle("首页");

5.最后只要设置 Application 的 Style —— AppTheme 和 Activity 的 Style —— AppTheme.NoActionBar 就可以了,因为已经有了 Toolbar 了,替代了 ActionBar,所以在 Activity 的 Theme 中需要设置为 windowActionBar 为 false。

 <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
</style> <!-- activity theme. -->
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

6.效果图。

到这里 Toolbar 的基本使用就介绍完了,下一节中将会开始介绍如何自定义属于自己的 Toolbar。

商城项目实战 | 2.1 Android 仿京东商城——自定义 Toolbar (一)的更多相关文章

  1. 商城项目实战 | 2.2 Android 仿京东商城——自定义 Toolbar (二)

    本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 上一篇文章<商城项目实战 | 2.1 Android 仿京东商城 ...

  2. 商城项目实战 | 1.1 Android 仿京东商城底部布局的选择效果 —— Selector 选择器的实现

    前言 本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 京东商城的底部布局的选择效果看上去很复杂,其实很简单,这主要是要 ...

  3. ThinkPHP3.2开发仿京东商城项目实战视频教程

    ThinkPHP3.2仿京东商城视频教程实战课程,ThinkPHP3.2开发大型商城项目实战视频 第一天 1.项目说明 2.时间插件.XSS过滤.在线编辑器使用 3.商品的删除 4.商品的修改完成-一 ...

  4. 完美高仿精仿京东商城手机客户端android版源码

    完美高仿精仿京东商城手机客户端android版源码,是从安卓教程网那边转载过来的,这款应用源码非常不错的,也是一个非常优秀的应用源码的,希望能够帮到学习的朋友. _js_op> <igno ...

  5. 01-02 Flutter仿京东商城项目 功能分析、底部导航Tab切换以及路由配置、架构搭建:(Flutter仿京东商城项目 首页布局以及不同终端屏幕适配方案)

    Flutter和Dart交流学习群:交流群:452892873 01Flutter仿京东商城项目 功能分析.底部导航Tab切换以及路由配置.架构搭建 02Flutter仿京东商城项目 首页布局以及不同 ...

  6. 洗礼灵魂,修炼python(82)--全栈项目实战篇(10)—— 信用卡+商城项目(模拟京东淘宝)

    本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) ...

  7. 【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布

     转自:https://blog.csdn.net/wwww_com/article/details/54405355 前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响 ...

  8. 【SSH网上商城项目实战21】从Demo中看易宝支付的流程

         转自: https://blog.csdn.net/eson_15/article/details/51447492 这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后, ...

  9. 【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

    转自:https://blog.csdn.net/eson_15/article/details/51405911 网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要 ...

随机推荐

  1. python3.4 安装 scrapy 报错 VS2010

    安装scrapy框架报错是常见问题 还好,本人只碰到其中一个bug,以下是此次安装经验 环境 py3.4 windows7 64位 安装有VS2010 pip包管理(pycharm) 报错信息 安装l ...

  2. StringBuffer与StringBuilder的区别,及实现原理

    区别 1.StringBuffer 与 StringBuilder 中的方法和功能完全是等价的, 2.只是StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是 ...

  3. CoreAnimation 图层几何学

    CoreAnimation 图层几何学 博客园MakeDown支持不佳,如有需要请进GitHub 图层几何所讲主要是有关图层的位置,尺寸等几何类属性. 布局 在UIView中与位置,尺寸有关的属性有 ...

  4. 关于html中利用jQuery选择子节点方法总结——待续

    好几次碰到类似的要求,每次用的都不一样,在之前的面试的时候就被问到,突然觉得虽然自己做过但是说不出头绪,只能回答什么parent(),next()等等.所以想整理一下. 1.需求一:同页面有两个表格, ...

  5. DapperPoco -- 基于Dapper的、轻量级的、高性能的、简单的、灵活的ORM框架

    为什么要重复造轮子 因为现有的轮子都在某些方面不太令我满意,下面我来一一点评一下,欢迎拍砖. Entity Framework 我喜欢傻瓜化使用方式的框架,同时又不失灵活性. EF虽然使用起来足够简单 ...

  6. 【Spring】使用Spring和AMQP发送接收消息(中)

    上篇讲了RabbitMQ连接工厂的作用是用来创建RabbitMQ的连接,本篇就来讲讲RabbitMQ的发送消息.通过RabbitMQ发送消息最简单的方式就是将connectionFactory Bea ...

  7. Android + OpenCV - Finding extreme points in contours

    原文链接:http://answers.opencv.org/question/134783/android-opencv-finding-extreme-points-in-contours/ 导 ...

  8. java学习笔记 --- java基础语法

    一.java标识符,关键字,保留字 1.标识符 用来增强程序阅读性自定义的名字.类名,变量名,方法名等都可以被称为标识符 标识符的组成: 1.由数字(0-9),字母(a-z,A-Z),下划线(_),美 ...

  9. node.js下mongoose简单操作实例

    Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接var mongoose = require('mongoose'); ...

  10. Recurrent Neural Network系列4--利用Python,Theano实现GRU或LSTM

    yi作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORK ...