Android Function(1)| ActionBar的操作

一. 前言

关于android状态栏,其实之前自己在做开发的时候就是会直接隐藏掉系统自带的actionbar,然后创建一个LinearLayout布局,高度设置为actionSize,然后就直接在这个布局里面摆放控件(往事不堪回首)。直到第一次使用到了ToolBar,沃德玛雅!怎么那么好用,后来就一发不可收拾的爱上了这个Google官方推荐的bar了。

二. ToolBar的基本使用

首先是需要在res/values/styles.xml中设置AppTheme中parent的主题为NoActionBar主题,接着就会发现我们的xml预览图中所有界面的顶部就都没有了bar。

NoActionBar

接着就是在布局文件中来使用ToolBar了:

设置布局

如果想要改变ToolBar上面显示的文字,则可以到AndroidMainifest.xml中来进行修改:

显示的文字

三. 在ToolBar上面设置返回和menu

1.设置返回

使用Toolbar可以很方便的的设置app左上角的返回/打开滑动窗口的按钮,具体的操作代码如下:


显示图标

上述代码需要注意一下:在getSupportActionBar()之前必须要先setSupportActionBar(),否则图标就不会显示出来,图标的默认样式是一个箭头向右的返回箭头,如果想要改变图片,则可以调用setHomeAsUpIndicator()方法:

if(actionBar != null) {
    actionBar.setDisplayHomeAsUpEnabled(true);  //显示图标
    actionBar.setHomeAsUpIndicator(R.drawable.menu);  //自定义图标
 }

如果想要对图标设置点击事件,则可以调用如下代码:

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch (item.getItemId()){
            case android.R.id.home:  //默认id
                finish();
                break;
        }
        return true;
    }

2.设置menu

接下来对Toolbar的右上角进行操作,来增加一个menu。首先是在res中新建一个Directory叫做menu,接着在menu文件夹中创建一个Menu resource file创建一个xml文件:


menu xml

接着就是在主代码中将menu加载进入Toolbar中:

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.toolbar,menu);
        return true;
    }

最后就是对每一项menu设置点击事件,修改onOptionsItemSelected方法:

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch (item.getItemId()){
            case android.R.id.home:
                finish();
                break;
            case R.id.menu1:
                Toast.makeText(this, "menu1", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu2:
                Toast.makeText(this, "menu2", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu3:
                Toast.makeText(this, "menu3", Toast.LENGTH_SHORT).show();
                break;    
        }
        return true;
    }

四. 我只想在右上角设置一个按钮

如果想在Toolbar的右上角设置一个按钮,思路就是创建一个只有一个子项的menu,然后在item里面设置app:showAsAction=“always”即可:

always

你可能感兴趣的:(Android Function(1)| ActionBar的操作)