Android 5.0特性--ActionBar
1,实现效果
-
升级版本的title.可以存放更多的控件的布局/工具栏。
-
开发者可以添加新的元素与编写对应的事件。
-
也可以删除ActionBar
-
ActionBar不能在布局中使用
2,实现逻辑
【1】找到ActionBar, AppCompatActivity替代以前旧的ActionBarActivity
-
默认显示
【2】获取Actionbar 更改字体和图标
-
设置标题的必须添加2个条件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("等等");
actionBar.setDisplayShowTitleEnabled(true);
//设置图标
actionBar.setLogo(R.mipmap.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);//logo条件1
actionBar.setDisplayShowHomeEnabled(true);//logo条件2
setContentView(R.layout.activity_main);
}
【3】实现多种显示
-
Activitiy 添加布局,return true :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
-
设置标题内容
<?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">
<!--menu是ActionBar上面元素的集合
元素是item
id控件的id
title显示字符串
icon显示图标
MenuInflater :菜单的打气筒
showAsAction显示方式1.always 显示 2.ifRoom有空间就显示 3.never默认值 显示在隐藏菜单
-->
<item android:id="@+id/item1" android:title="元素1"
app:showAsAction="always"
android:icon="@mipmap/ic_launcher"/>
<item android:id="@+id/item2" android:title="元素2"
app:showAsAction="ifRoom"
android:icon="@mipmap/ic_launcher"/>
<item android:id="@+id/item3" android:title="元素3"
app:showAsAction="never"
android:icon="@mipmap/ic_launcher"/>
<item android:id="@+id/item4" android:title="元素4"
android:icon="@mipmap/ic_launcher"/>
</menu>
设置点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.item2:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.item3:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.item4:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}