Material Design学习之Toolbar的使用(1)
2017-11-05 14:06
134 查看
Toolbar的使用:
准备活动:
任何一个新建项目默认的都是显示ActionBar,其实这是根据项目中指定的主题来显示的。打开AndroidManifest.xml文件,如下:<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > ... </application>
可以看到Android:theme指定了APPTheme的主题,而这个主题实在res/values/styles/.xml文件:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
这里定义了APPTheme的主题,如过我们使用Toolbar来代替ActionBar,需要指定不带ActionBar的主题:
Theme.AppCompat.Light.NoActionBar(主题颜色设为深色,陪衬颜色为浅色);
Theme.AppCompat.Light.NoActionBar(淡色主题);
修改代码
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:id="@+id/toolbar" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </android.support.v7.widget.Toolbar> </RelativeLayout>
解释:为什么用xmlns:app的命名空间:这是由于Material Design实在Android5.0系统中出现的,有很多Material属性之前不存在,为了兼容老系统使用app:attribute;android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar":我们将程序设为了浅色主题,为了和主题颜色区分开,ToolBar上的元素就会自动使用深色,为了让Toolbar单独使用深色主题,使用Android:theme。那么这样弹出的菜单也会为深色主题,使用app:popupTheme将弹出的菜单设为单色主题。MainActivity文件中加入:
Toolbar toolbar; toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);
这样运行效果和之前ActionBar看起来一样,接下来运用Toolbar的常用功能,添加action按钮添加按钮右击res目录-》new-Directory,创建Menu文件夹,右击menu文件夹,new
Menu resource file,创建Toolbar.xml文件,编写代码如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:icon="@mipmap/ic_launcher" android:title="Backup" app:showAsAction="always" android:id="@+id/back_up"/> <item android:icon="@mipmap/ic_launcher" android:title="delete" app:showAsAction="always" android:id="@+id/delete"/> <item android:icon="@mipmap/ic_launcher" android:title="settings" app:showAsAction="always" android:id="@+id/Settings"/> </menu>
app:showAsaction:指定按钮的显示位置,always(永远显示,屏幕不够则不显示)ifRoom(屏幕如果够则显示,不够再菜单里显示) never(永远显示在菜单中)Toolbar中的action按钮只显示图标,菜单中的action按钮只显示文字。修改MainActivity中的代码:
相关文章推荐
- Material Design控件使用学习 toolbar+drawerlayout+ Snackbar
- Android Material Design控件学习NavigationView和Toolbar使用
- IOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- IOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- [转]iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- 使用Material Design 创建App翻译系列----开始学习篇
- Material Design之CollapsingToolbarLayout使用
- iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- ArcGIS Server9.2学习开发(5)——使用Toolbar控件
- IOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar
- iOS学习之UINavigationController详解与使用(三)ToolBar