在佈局中寫ToolBar屬性的時候能夠設置logo、title、titleTextColor、subTitle等(logo默認顯示在ToolBar的左側,title和subtitle顯示在logo右側,若是不設置subtitle,title會默認豎直居中)android
全部ToolBar的功能要在前面把android改成app不然無效app
第一步:佈局
由於系統默認會給整個佈局頂部添加一個ActionBar因此要讓咱們本身定義的ToolBar顯示的話要自定義一個style讓Action顯示不出來,且咱們定義的樣式style最好繼承系統默認的樣式(AppTheme),自定義的style代碼以下:ui
<style name="AppTheme.NoActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> </style>
第二部:this
要在清單文件中給想要放置ToolBar的Activity添加一個主題,即在activity的「>」內部加入一行代碼spa
<activity android:name=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
紅色部分即爲咱們爲ToolBar自定義的樣式xml
第三部:繼承
在Activity的代碼中要記得實例化ToolBar並寫入一段代碼,ToolBar便可實現ip
toolbar= (Toolbar) findViewById(R.id.toolbar_main); setSupportActionBar(toolbar);
第四部:get
如何在ToolBar的右側添加按鈕的方法
一、ToolBar內部能夠嵌套其它控件,能夠理解爲ToolBar自己爲一個佈局,裏面能夠添加TextView、Button之類的控件,可是用這種方法我沒有實現讓按鈕在ToolBar右側依次排開,也沒找到好的辦法實現
二、在Activity的代碼中實現Menu,Menu便會從ToolBar右側依次排開,首先要在res文件夾下新建一個menu文件夾,再在menu文件夾下選擇新建menufile代碼以下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_setting" android:icon="@mipmap/ic_audit" android:actionLayout="@layout/action_setting" android:title="評審" app:showAsAction="always|withText"></item> <item android:id="@+id/action_setting1" android:icon="@mipmap/ic_add_article" android:title="編寫" android:actionLayout="@layout/action_setting1" app:showAsAction="always|withText"/> </menu>
在上面這段代碼中一個item即爲一個menu,這裏我新建了兩個menu,必需要給menu設置id和title和showAsAction,咱們能夠給每個menu設置一個新的佈局,例如第一個item的actionLayout即爲我給這個menu設置的佈局
在Activity中重寫onCreateOpionMenu方法,其中的R.menu.menu_main即爲咱們新建的menufile
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main,menu); return super.onCreateOptionsMenu(menu); }
爲了實現menu的點擊時間咱們要在Activity中重寫onOptionsItemSelected方法,代碼以下:
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_setting1: Toast.makeText(MainActivity.this, "點擊了Home", Toast.LENGTH_SHORT).show(); AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setMessage("確認退出嗎?"); builder.setTitle("提示"); builder.create().show(); break; case R.id.action_setting: Toast.makeText(MainActivity.this, "點擊了Settings菜單", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); }
上面的代碼中的R.id.action_setting即爲咱們新建的menu文件中第二個item的id,這裏我設置了點擊menu的時候生成一個對話話框。設置完成後這兩個menu即會在ToolBar的右側依次顯示,可是爲何menu會自動顯示在ToolBar上不知道誰能告訴我