Android 5.X的新特性介绍(ToolBar、FloatingActionButton、SnackBar、TextInputEditText......)

从Android 5.0开始,Android正式进入扁平化的时代,使用一种新的Meterial Design设计风格,开始支持多种设备。从Android 5.0开始,不再使用Dalvik虚拟机,而是完全的ART,提高了加载速度;增加了省电模式,提高了系统的性能。

从这一节开始,我将从Android 5.0开始,介绍Android发展至今的各个版本的新性能,虽然Android 5.0至今已经过了很长时间,但是还有很多当时的新特性活跃在如今的APP中。

1、悬浮式的Notification

这个特性在如今的APP中,尤其是在消息通知中,使用的最多,就是悬浮式的通知栏,我们在使用各类APP的时候,当其他APP有消息推送的时候,在屏幕上方,就有消息通知栏,像微信的消息弹出窗,这个时候,它不会抢占屏幕的焦点,我们可以对当前屏幕操作,还可以拉动移除这个通知栏。

在Android 8.0之后,悬浮窗又更新新的特性,所以我就先放到后面Android 8.0的时候再拿出来讲解。

2、DrawerLayout + NavigationView

看过我博客的应该知道,在之前的项目中,我有使用到这个布局,就是创建侧拉菜单时,使用的抽屉布局,之前的博客有详细介绍,就不在此说明了。

除此之外,还有ViewPager + TabLayoutRecyclerView这些Android 5.0的产物,在之前的项目中都有详细介绍,就不在此一一说明。

3、ToolBar

Android 5.0推出的导航控件,用来代替之前的ActionBar;ToolBar的出现,主要是用来做标题页面。像之前的项目中,有用过include标签来作为标题栏,那么现在来介绍一下ToolBar。

<androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorDark"
        app:navigationIcon="@drawable/ic_icon_left"
        app:title="标题"
        app:subtitle="子标题"
        app:logo="@drawable/ic_launcher_background"
        app:titleTextColor="@color/colorAccent"
        app:subtitleTextColor="@color/colorPrimary">
 </androidx.appcompat.widget.Toolbar>

又到了熟悉的属性介绍环节:

(1)navigationIcon:添加左侧导航按钮,一般是返回按钮。
在这里插入图片描述
(2)titlesubtitle:标题和子标题
titleTextColorsubtitleTextColor:设置标题、子标题的颜色。

(3)logo:设置logo
在这里插入图片描述
(4)设置menu

在项目中创建一个Menu菜单,然后设置几个Menu。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/menu1"
        android:icon="@drawable/ic_search"
        android:title="按钮1"
        app:showAsAction="ifRoom"
        ></item>
    <item android:id="@+id/menu2"
        android:icon="@drawable/ic_icon_left"
        android:title="按钮2"
        app:showAsAction="ifRoom"
        ></item>
    <item android:id="@+id/menu3"
        android:icon="@drawable/ic_icon_left"
        android:title="按钮3"
        app:showAsAction="ifRoom"
        ></item>
    <item android:id="@+id/menu4"
        android:icon="@drawable/ic_icon_left"
        android:title="按钮4"
        app:showAsAction="ifRoom"
        ></item>

</menu>

从下图中可以看出,showAsAction有几个值:

----always:不管ToolBar还剩多少空间,都要显示在ToolBar

----ifRoom:先在ToolBar上显示,如果剩余的没有空间显示,就放在溢出菜单里。

----never:不管是否剩余空间,都存在溢出列表中
在这里插入图片描述
通过代码动态加载menu菜单。

tool.inflateMenu(R.menu.tool_menu);

在这里插入图片描述
在这里插入图片描述
(5)折叠视图

在menu菜单的5个属性中,有一个属性是collapseActionView这个属性就是代表折叠属性视图,首先在toolbar中设置。

app:collapseIcon="@drawable/ic_category"

然后修改menu菜单中第一个search的图标。

<item android:id="@+id/menu1"
        android:icon="@drawable/ic_search"
        android:title="按钮1"
        app:showAsAction="ifRoom|collapseActionView"
        app:actionViewClass="androidx.appcompat.widget.SearchView"></item>

在这里插入图片描述
(6)Menu的单击事件

 tool.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                return false;
            }
        });

这个在之前NavigationView中,设置menu菜单时的使用方法一致,可以看之前的博客。

(7)设置返回按钮的单击事件

app:navigationIcon="@drawable/ic_icon_left
tool.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Android5Activity.this,"单击了返回",Toast.LENGTH_SHORT).show();
            }
        });

(8)设置子View布局

<androidx.appcompat.widget.Toolbar
        android:id="@+id/tool"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:background="@color/colorDark"
        app:navigationIcon="@drawable/ic_icon_left"
        app:title="标题"
        app:subtitle="子标题"
        app:titleTextColor="@color/colorAccent"
        app:subtitleTextColor="@color/colorBlack"
        app:logo="@drawable/ic_launcher_background"
        app:collapseIcon="@drawable/ic_category">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="标题"
            android:textSize="20dp"
            android:textColor="@color/colorBlack"
            android:gravity="center"
            ></TextView>

    </androidx.appcompat.widget.Toolbar>

设置子View,当做标题居中显示
在这里插入图片描述
4、FloatingActionButtonSnackbar

FloatingActionButton是Android 5.0推出的一个继承自ImagView的控件,具备浮动效果,在设置属性中,elevation就是设置控件浮动的阴影特效。

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorBlue"
        android:elevation="10dp"
        app:fabSize="normal"
        app:pressedTranslationZ="16dp"
        android:layout_alignParentBottom="true"></com.google.android.material.floatingactionbutton.FloatingActionButton>

SnackBar则是类似Toast的使用效果,但是更灵活一些。

Snackbar.make(rl,"点击了Button", Snackbar.LENGTH_LONG)
                        .setAction("取消", new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Toast.makeText(Android5Activity.this,"取消",Toast.LENGTH_SHORT).show();
                            }
                        }).show();

在使用SnackBar的时候,需要一个显示的父布局,我这里使用的是该界面的相对布局,其他的和Toast的使用方式一致,可以设置Action
在这里插入图片描述
5、TextInputLayoutTextInputEditText

跟之前EditText不同的是,之前EditTexthint在输入的时候,就会消失,但是使用TextInputEditText就会将hint移到上方。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Awesome_lay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值