<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">//或者是添加item:<item name="windowActionBar">false</item><item name="windowNoTitle">true</item>//再将style-v21中styles的AppTheme的parent修改为AppTheme.Base
<android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_height="?attr/actionBarSize"android:layout_width="match_parent" ></android.support.v7.widget.Toolbar>
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(toolbar);
// App Logotoolbar.setLogo(R.drawable.ic_launcher);// Titletoolbar.setTitle("My Title");// Sub Titletoolbar.setSubtitle("Sub title");setSupportActionBar(toolbar);// Navigation Icon 要設定在 setSupportActionBar后才有作用// 否則會出現 back button样式( 一个箭头图标 )toolbar.setNavigationIcon(R.drawable.ab_android);// Menu item click 的監聽事件一樣要設定在 setSupportActionBar 才有作用toolbar.setOnMenuItemClickListener(onMenuItemClick);
<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_edit"android:title="@string/action_edit"android:orderInCategory="80"android:icon="@drawable/ab_edit"app:showAsAction="ifRoom" /><item android:id="@+id/action_share"android:title="@string/action_edit"android:orderInCategory="90"android:icon="@drawable/ab_share"app:showAsAction="ifRoom" /><item android:id="@+id/action_settings"android:title="@string/action_settings"android:orderInCategory="100"app:showAsAction="never"/></menu>
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main, menu);return true;}
private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem menuItem) {String msg = "";switch (menuItem.getItemId()) {case R.id.action_edit:msg += "Click edit";break;case R.id.action_share:msg += "Click share";break;case R.id.action_settings:msg += "Click setting";break;}if(!msg.equals("")) {Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();}return true;}};
ifRoom | 如果空间不够则会显示在溢出列表中,否在显示在item上 |
never | 永远不会显示在item上,仅显示在溢出列表中并且仅显示标题 |
always | 无论是否溢出都现在item上 |
withText | 要显示文本标题,但是可能会受空间的影响显示不全 |
collapseActionView | 声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。一般要配合ifRoom一起使用才会有效果。 |
原文:http://www.cnblogs.com/yuzhongzheng/p/5228400.html