Android Material Design Toolbar
2017-04-21 08:44
423 查看
Toolbar和ActionBar的用途一样。更准确的说Toolbar是[b]ActionBar的升级版。ActionBar相信大家不会陌生了,没记错的话是在Android 3.0引入的;Toolbar则是随着Material Design一起出道的,那是在2014年Google I/O大会上重磅推出的一套全新的界面设计语言-------Material Design,然而到了2015年的Google
I/O大会上谷歌有推出一个[b]Design Support库,这个库将Material Design中很多具有代表性的控件和效果进行了封装,为的就是让开发者们简单点、轻松点的开发。[/b][/b]
[b] Toolbar简单的使用:三步足矣。。。。[/b]
第一步:很明显,谷歌已经告诉我们了,Toolbar就是拿来替换ActionBar的,那好,找到/res/values/styles.xml,找到<stylename="AppTheme"parent="Theme.AppCompat.Light.DarkActionBar">,将parent改为parent="Theme.AppCompat.Light.NoActionBar",当然,你也可以改为parent="Theme.AppCompat.NoActionBar",这两者的区别是,parent="Theme.AppCompat.Light.NoActionBar"表示的是淡色主题,而parent="Theme.AppCompat.NoActionBar"表示是深色主题。这里我们改为parent="Theme.AppCompat.Light.NoActionBar"深色主题,来张图更清楚
[b] 第二步:布局文件设置,直接贴代码。[/b]
这里的高度设置为ActionBar的高度,也可以这么来设置
[b] 第三步:在MainActivity.java中使用Toolbar。[/b]
[b]注意:使用Toolbar要继承AppCompatActivity,不是继承Activity(宝宝在这掉坑了,不希望大家也掉下来
),不信你看[/b]
[b]
[/b]
[b]效果图:
[/b]
[b]
[/b]
真正的Toolbar没这么简单,也很美观,常用功能、点击事件走起:
修改标题:在Androidmanifest.xml中有个android:label,这货是可以修改Toolbar显示的文字。没有指定的话,就默认为应用名称。
mToolbar.setTitle("My Title");// 标题的文字需在setSupportActionBar之前,不然会无效(标题的第二种改法,在Java代码中改)
让Toolbar变得丰富起来,就要添加按钮。点击res右键/new/Directory,创建一个 menu文件夹,点击menu文件夹右键, new /Menu /resource file,创建一个toolbar.xml文件。代码如下:
[b]可以看到<item>标签这里是用来定义action按钮,icon用于指定按钮的图标,title用于指定按钮的文字。关键的是使用app:showAsAction来指定按钮的显示位置,之所以使用来命名空间,同样是为了能兼容低版本系统,showAsAction主要有三种值可选,always表示永远显示在Toolbar中,如果屏幕空间不够则不显示;ifRoom表示屏幕空间足够的情况下显示在Toolbar中,不够的话就显示在菜单当中;never则表示永远显示在菜单当中。注意:Toolbar中的按钮只会显示图标,菜单中的按钮只会显示文字。
[/b]
效果图:
[b]
[/b]
[b]Toolbar的强大更多的是和其他的控件一起使用,比如Toolbar和侧滑菜单DrawerLayout,[/b]
[b]Android Material Design wraerlayout
[/b]
I/O大会上谷歌有推出一个[b]Design Support库,这个库将Material Design中很多具有代表性的控件和效果进行了封装,为的就是让开发者们简单点、轻松点的开发。[/b][/b]
[b] Toolbar简单的使用:三步足矣。。。。[/b]
第一步:很明显,谷歌已经告诉我们了,Toolbar就是拿来替换ActionBar的,那好,找到/res/values/styles.xml,找到<stylename="AppTheme"parent="Theme.AppCompat.Light.DarkActionBar">,将parent改为parent="Theme.AppCompat.Light.NoActionBar",当然,你也可以改为parent="Theme.AppCompat.NoActionBar",这两者的区别是,parent="Theme.AppCompat.Light.NoActionBar"表示的是淡色主题,而parent="Theme.AppCompat.NoActionBar"表示是深色主题。这里我们改为parent="Theme.AppCompat.Light.NoActionBar"深色主题,来张图更清楚
<resources> <!-- Base application theme. --> <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> </resources>
[b] 第二步:布局文件设置,直接贴代码。[/b]
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.xhm.demo.toolbarproject.ToolbarActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </android.support.v7.widget.Toolbar> </LinearLayout>
这里的高度设置为ActionBar的高度,也可以这么来设置
android:minHeight=
"?attr/actionBarSize"。
[b] 第三步:在MainActivity.java中使用Toolbar。[/b]
public class ToolbarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_toolbar); Toolbar toolbar=(Toolbar) findViewById(R.id.toolbar); //setSupportActionBar方法将Toolbar实例传入 //其实就是Toolbar替换Actionbar setSupportActionBar(toolbar); } }
[b]注意:使用Toolbar要继承AppCompatActivity,不是继承Activity(宝宝在这掉坑了,不希望大家也掉下来
),不信你看[/b]
[b]
[/b]
[b]效果图:
[/b]
[b]
[/b]
真正的Toolbar没这么简单,也很美观,常用功能、点击事件走起:
修改标题:在Androidmanifest.xml中有个android:label,这货是可以修改Toolbar显示的文字。没有指定的话,就默认为应用名称。
mToolbar.setTitle("My Title");// 标题的文字需在setSupportActionBar之前,不然会无效(标题的第二种改法,在Java代码中改)
android:label="Toolbar"
让Toolbar变得丰富起来,就要添加按钮。点击res右键/new/Directory,创建一个 menu文件夹,点击menu文件夹右键, new /Menu /resource file,创建一个toolbar.xml文件。代码如下:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/delete" android:icon="@drawable/ic_delete" android:title="Delete" app:showAsAction="ifRoom"/> <item android:id="@+id/share" android:icon="@drawable/ic_share_black" android:title="Share" app:showAsAction="always"/> <item android:id="@+id/more" android:icon="@drawable/ic_more" android:title="More" app:showAsAction="always"/> </menu>
[b]可以看到<item>标签这里是用来定义action按钮,icon用于指定按钮的图标,title用于指定按钮的文字。关键的是使用app:showAsAction来指定按钮的显示位置,之所以使用来命名空间,同样是为了能兼容低版本系统,showAsAction主要有三种值可选,always表示永远显示在Toolbar中,如果屏幕空间不够则不显示;ifRoom表示屏幕空间足够的情况下显示在Toolbar中,不够的话就显示在菜单当中;never则表示永远显示在菜单当中。注意:Toolbar中的按钮只会显示图标,菜单中的按钮只会显示文字。
[/b]
public class ToolbarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_toolbar); Toolbar toolbar=(Toolbar) findViewById(R.id.toolbar); //setSupportActionBar方法将Toolbar实例传入 //其实就是Toolbar替换Actionbar setSupportActionBar(toolbar); } /** * 加载toolbar.xml菜单文件 * @param menu * @return */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar,menu); return true; } /** * Toolbar按钮点击事件处理 * @param item * @return */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.more: Toast.makeText(ToolbarActivity.this, "more", Toast.LENGTH_SHORT).show(); break; case R.id.delete: Toast.makeText(ToolbarActivity.this, "delete", Toast.LENGTH_SHORT).show(); break; case R.id.share: Toast.makeText(ToolbarActivity.this, "share", Toast.LENGTH_SHORT).show(); break; } return true; } }
效果图:
[b]
[/b]
[b]Toolbar的强大更多的是和其他的控件一起使用,比如Toolbar和侧滑菜单DrawerLayout,[/b]
[b]Android Material Design wraerlayout
[/b]
相关文章推荐
- Android Material Design之Toolbar与Palette实践
- Android Study Material Design 七 之 谈谈ToolBar以及SearchView
- Android Material Design之Toolbar与Palette实践
- Android Material Design CollapsingToolbarLayout使用
- Android Material Design之Toolbar与Palette实践
- Android Material Design之Toolbar与Palette实践
- Android Material Design之Toolbar与Palette实践
- Android Material Design Toolbar笔记1
- Android Material Design(4) CoordinatorLayout,AppBarLayout,Toolbar以及TabLayout的使用
- Android Material Design ToolBar 使用
- Android Material Design之Toolbar与Palette实践
- Android Material Design ToolBar 配置环境问题
- Android Material Design Library系列教程(四)
- Android Design AppBarLayout、NavigationView、FloatingActionButton、CollapsingToolbarLayout等控件的使用
- Android Material Design Library系列教程(五)
- Android-Material-Design-for-pre-Lollipop
- Android Material Design ProgressBar 使用经验(导入,颜色自定义等)
- Android:Implementing material design in your Android app!
- Android Material Design 动画实现
- Android 常用插件介绍 - MaterialDesignLibrary