布局
<android.support.v7.widget.Toolbar android:id="@+id/toolBar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" />
样式
1.设置标题
toolBar.setTitle("Rxjava"); toolBar.setTitleTextColor(getResources().getColor(R.color.white)); setSupportActionBar(toolBar);
设置标题要放在setSupportActionBar(toolBar);之前,不然会没有效果
2. 设置菜单 即Tollbar右侧的三个小点
首先设置munu, 在res目录下新建menu文件夹,新增meun_main.xml
布局文件:
<?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" 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="never" /> <item android:id="@+id/action_share" android:title="@string/action_share" android:orderInCategory="90" android:icon="@drawable/ab_share" app:showAsAction="never" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:icon="@drawable/ab_setting" android:orderInCategory="100" app:showAsAction="never"/> </menu>
然后在Activity里创建菜单
/** 创建toolbar菜单 */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.meun_main,menu); return true; }
三个子按钮的点击事件
toolBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.action_edit: // 编辑 break; case R.id.action_share: // 分享 break; case R.id.action_settings: // 设置 break; } return true; } });
修改Toolbar popup menu样式
1. 修改menu背景颜色
<!-- toolbar弹出菜单样式 --> <style name="ToolbarPopupTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:colorBackground">#000000</item> </style>
然后在toolbar属性下调用
android:popupTheme="@style/ToolbarPopupTheme"
修改Toolbar popup menu 弹出位置
默认弹出的位置是覆盖在toolbar之上的
做如下修改则可使弹出位置在toolbar下方
<style name="OverflowMenuStyle" parent="Widget.AppCompat.Light.PopupMenu.Overflow"> <item name="overlapAnchor">false</item> <!--把该属性改为false即可使menu位置位于toolbar之下--> </style>
然后在toolbar的style中调用
<item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
参考链接
http://blog.csdn.net/c12366456/article/details/51534816
http://blog.csdn.net/guolin_blog/article/details/18234477
http://blog.csdn.net/a553181867/article/details/51336899