android5.0自带兼容控件__Toolbar

简介:

Toolbar


本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/50189449
微博: http://weibo.com/u/2524456400


ToolBar是android5.0当中用于代替ActionBar使用,从而实现Material Design风格.
本文只讲ToolBar向下兼容部分,也就是低版本api可用使用的部分

基本使用

XML布局:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="#03A9F4" />

Activity代码:

public class ToolBarDemo extends AppCompatActivity {
    private Toolbar toolbar;
    private ImageView back;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_toolbar);
        initView();
        initData();
    }

    private void initView() {
        toolbar = (Toolbar) findViewById(R.id.toolbar);
    }

    private void initData() {
        setSupportActionBar(toolbar);
    }
}

主题

<style name="AppTheme" parent="AppBaseTheme">
    <item name="windowActionBar">false</item>
    <item name="android:windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowNoTitle">true</item>
</style>

效果:

源码研究

XML属性研究:

<declare-styleable name="Toolbar">
    <attr name="titleTextAppearance" format="reference" />      // 标题文字样式
    <attr name="subtitleTextAppearance" format="reference" />   // 副标题文字样式
    <attr name="title" />                                       // 设置标题文字
    <attr name="subtitle" />                                    // 设置副标题文字

默认

    <attr name="android:gravity" />
    <attr name="titleMargins" format="dimension" />             // 标题:四周边距+垂直居中(超出范围不显示)

titleMargins

    <attr name="titleMarginStart" format="dimension" />         // 标题:左边距

titleMarginStart

    <attr name="titleMarginEnd" format="dimension" />
    <attr name="titleMarginTop" format="dimension" />           // 标题:上边距

titleMarginStart

    <attr name="titleMarginBottom" format="dimension" />
    <attr name="contentInsetStart" />                           // 内容:左边距[0无边距]

titleMarginStart

    <attr name="contentInsetEnd" />
    <attr name="contentInsetLeft" />                            // 内容:XXX未知XXX
    <attr name="contentInsetRight" />
    <attr name="maxButtonHeight" format="dimension" />          // XXX未知XXX

    <attr name="collapseIcon" format="reference" />             // XXX未知XXX
    <attr name="collapseContentDescription" format="string" />
    <attr name="popupTheme" />
    <attr name="navigationIcon" format="reference" />           // 图标
    <attr name="navigationContentDescription" format="string" />// 图标描述(不会显示)
    <attr name="android:minHeight" />

    <attr name="logo" />                                        // Logo
    <attr name="logoDescription" format="string" />             // Logo描述

titleMarginStart

    <attr name="titleTextColor" format="color" />               // 标题文字颜色
    <attr name="subtitleTextColor" format="color" />            // 副标题文字颜色
</declare-styleable>

案例:

附:

Color palette:

原文






案例源代码:

GitHub

目录
相关文章
|
2月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
47 0
|
3月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
58 3
|
4月前
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
6月前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
106 4
|
6月前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
232 2
|
6月前
|
Java Android开发 开发者
17. 【Android教程】开关控件ToggleButton/Switch
17. 【Android教程】开关控件ToggleButton/Switch
84 2
|
5月前
|
XML 数据格式
Android-自定义三角形评分控件
Android-自定义三角形评分控件
48 0
|
6月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
|
6月前
|
Android开发
Android 自定义View 测量控件宽高、自定义viewgroup测量
Android 自定义View 测量控件宽高、自定义viewgroup测量
143 0
|
7月前
|
XML Java Android开发
Android控件动态使用 (转)
Android控件动态使用 (转)
44 1