Android ActionBar

ActionBar是Android常用的导航控件,位于activity的顶部,用于显示标题,导航icon和actions等等,下面总结一下ActionBar的常用方法:

1、基本属性

设定APP的主题Theme.AppCompat.Light.DarkActionBar,其中colorPrimary就是actionBar的背景颜色,setTitle设置actionbar的标题内容

2、显示与隐藏

actionBar的显示和隐藏主要是通过调用getSupportActionBar().hide()和show()来实现

需要全屏显示activity则需要隐藏actionbar和状态栏

// 隐藏状态栏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

        WindowManager.LayoutParams.FLAG_FULLSCREEN);

3、显示导航图标

进入二级界面,actionbar则需要显示返回上一个界面的退出图标,通过调用getSupportActionBar().setDisplayHomeAsUpEnabled(true)来实现,图标ID为android.R.id.home,那么点击事件的响应

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case android.R.id.home://点击actionBar返回键

            onBackPressed();

break;

        default:

break;

    }

return super.onOptionsItemSelected(item);

}

4、自定义actionbar

如果需要实现自定义actionbar,则通过getSupportActionBar().setCustomView()来实现

5、叠加模式

如果需要actionbar叠加显示在activity上,则需要在主题中加入true

6、getSupportActionBar()和getActionBar()的区别

如果当前activity是继承自AppCompatActivity,则需要通过getSupportActionBar()来获取actionbar

如果是继承自Activity,则可以调用getActionBar()来获取

7、创建actions

在res/menu中创建menu的item的描述属性:

   

android:id="@+id/action_refresh"

android:orderInCategory="100"

android:showAsAction="always"

android:icon="@drawable/ic_action_refresh"

android:title="Refresh"/>

   

android:id="@+id/action_settings"

android:title="Settings">

   

showAsAction属性用来定义每个Action是如何显示的,always表示永远显示在ActionBar中,如果屏幕空间不够则无法显示,ifRoom表示屏幕空间够的情况下显示在ActionBar中,不够的话就显示在overflow中,never则表示永远显示在overflow中。

在activity中使用这个menu:

@Override

public boolean onCreateOptionsMenu(Menu menu){

    MenuInflater inflater = getMenuInflater();

    inflater.inflate(R.menu.mainmenu, menu);

returntrue;

  }

响应action的点击事件:

Override

public boolean onOptionsItemSelected(MenuItem item){

switch(item.getItemId()) {

// action with ID action_refresh was selected

caseR.id.action_refresh:

Toast.makeText(this,"Refresh selected", Toast.LENGTH_SHORT)

          .show();

break;

// action with ID action_settings was selected

caseR.id.action_settings:

Toast.makeText(this,"Settings selected", Toast.LENG

          .show();

break;

default:

break;

    }

return true;

  }

你可能感兴趣的:(Android ActionBar)