Android(安卓)美化之Toolbar控件使用
前言:谷歌官方不再推荐使用ActionBar了,推荐使用design风格的Toolbar,所以我们现在来说说Toolbar使用。
一、替换掉Actionbar
既然要使用Toolbar,就要将原来的Actionbar替换掉。进入AndroidManifest文件,找到使用的主题
一般默认是 android:theme="@style/AppTheme"
这个的意思是 本app的主题用的是style文件下的名为AppTheme的主题,让我们打开这个主题:
res->values->style.xml
打开后,我们只需要将第一行改成Theme.AppCompat.Light.NoActionBar就好了,这里的Light指浅色主题,这里的NoActionBar就是我们去掉ActionBar的关键。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> - "colorPrimary"
>@color/colorPrimary - "colorPrimaryDark">@color/colorPrimaryDark
- "colorAccent">@color/colorAccent
style>
运行之后app已经没有菜单栏了
二、在布局文件中写入Toolbar控件
这里的高度设置成了actionBar的大小
三、在java文件中
绑定Toolbar 并调用setSupportActionBar()方法来设置当前的菜单栏为已绑定的toolbar对象:
Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar);
这时候,我们运行一下
看起来跟ActionBar没什么两样,但是这时候上面的已经是Toolbar而不是Actionbar了。
四、为Toolbar添加按钮
首先,我先从阿里巴巴图标库上下载了几个图标
有过ActionBar基础的应该知道,如果想增加在bar上增加按钮功能或者菜单,第一步需要:
在menu文件夹下创建xml文件,用来配置菜单栏
menu文件下的menu.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/backup" android:title="backup" android:icon="@drawable/icons1" app:showAsAction="always" /> <item android:id="@+id/backup1" android:title="backup1" app:showAsAction="never" /> <item android:id="@+id/backup2" android:title="backup2" app:showAsAction="ifRoom" android:icon="@drawable/icons2" />menu>
说明:分别指定了title
对于showAsAction方法 三个属性分别需要大家了解
属性 | 说明 |
---|---|
ifRoom | 如果菜单栏还有位置那就放,如果没有就放入折叠菜单 |
never | 永远不放在外面,一直都在折叠菜单里 |
Always | 永远放在外面 |
然后,我们需要对这个菜单进行配置,在MainActivity文件中重写下面这个方法,将刚才配置的xml文件与菜单进行绑定。
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar,menu); return true; }
最后的效果如下:
如果要为这些按钮添加监听事件,可以在MainActivity文件重写这个方法:
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.backup: Toast.makeText(next.this,"backup",Toast.LENGTH_SHORT).show(); break; case R.id.backup1: Toast.makeText(next.this,"backup1",Toast.LENGTH_SHORT).show(); break; case R.id.backup2: Toast.makeText(next.this,"backup2",Toast.LENGTH_SHORT).show(); break; default: break; } return true; }
现在让我们看看效果图:
更多相关文章
- android 5.1.1开机优化(framework层)
- 安装Android(安卓)2.2 SDK时出现的问题
- Android(安卓)adb push ... Read-only file system
- android创建文件夹和文件
- Android对文件的操作(简单的文件读取与写入)
- 内核直接NFS挂载Android文件系统启动
- 【Android(安卓)UI设计与开发】第07期:底部菜单栏(二)Fragment的详
- (原创)Android入门教程(三十六)------实现手机联系人的全选
- Android图片浏览器之缩略图