官方的最新support library v7中提供了新的組件ToolBar,用來替代之前的ActionBar,實現(xiàn)更為彈性的設計在 material design 也對之做了名稱的定義:App bar。下面描述下它的基本用法,權(quán)作拋磚引玉。
基本用法
如下代碼,實現(xiàn)了主副標題及Logo和標題顏色的設置
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("交易清單");
toolbar.setSubtitle("--2015年度明細");
toolbar.setLogo(R.drawable.icon);
toolbar.setTitleTextColor(Color.parseColor("#FFFFFF"));
setSupportActionBar(toolbar);
設置菜單按鈕額操作
需要首先編輯xml布局文件menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
<item android:id="@+id/action_share" android:title="share"
android:orderInCategory="100" app:showAsAction="ifRoom" />
</menu>
其中 app:showAsAction有三個可選的值
always:總是顯示在界面上
never:不顯示在界面上,只讓出現(xiàn)在右邊的三個點中
ifRoom:如果有位置才顯示,不然就出現(xiàn)在右邊的三個點中
android:orderInCategory
表明擺放的順序,不一定從0還是計算,但必須大于等于0,數(shù)值小的位于前,如果數(shù)值一樣,在我們這個例子中3又兩個值,則安順序擺放;
代碼處理
設置布局文件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
設置鍵值處理
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
mTextView.setText("Your Press Setting!\n");
return true;
}
else if(id == R.id.action_share){
mTextView.setText("share!");
return true;
}
return super.onOptionsItemSelected(item);
}
去除ActionBar
去除Actionbar最簡單的方法就是直接繼承NoActionBar的主題了