在布局中写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上不知道谁能告诉我