1.App主题使用NoActionBar 2.Activity需要继承AppCompatActivity 3.在代码中调用setSupportActionBar方法替换Actionbar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/tb_demo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"></android.support.v7.widget.Toolbar>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.tb_demo);
toolbar.setTitle("主标题");
toolbar.setSubtitle("副标题");
//设置左侧导航图标
toolbar.setNavigationIcon(R.drawable.ic_arrow_back_black_24dp);
//设置导航点击监听
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
setSupportActionBar(toolbar);
}
}
toolbar.jpg
<?xml version ="1.0" encoding ="utf-8"?><!-- Learn More about how to use App Actions: https://developer.android.com/guide/actions/index.html -->
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="搜索"
app:showAsAction="always" />
<item
android:title="其他"
app:showAsAction="never" />
<item
android:title="设置"
app:showAsAction="ifRoom" />
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
带菜单的toolbar.jpg
点击右侧overflow的toolbar.jpg
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<!--设置状态蓝颜色-->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--副标题及overflow颜色-->
<item name="android:textColorSecondary">#ffa000</item>
</style>
ToolBar API
collapseActionView()
折叠当前展开了行动视图。
showOverflowMenu()
从显示相关的菜单溢出项目。
dismissPopupMenus()
关闭所有当前显示弹出式菜单,包括溢出或子菜单。
isOverflowMenuShowing()
检查溢出菜单是否正在显示。
inflateMenu(int resId)
膨胀的菜单资源到这个工具栏。
hideOverflowMenu()
隐藏关联菜单溢出项目。
setContentInsetEndWithActions(int insetEndWithActions)
设置开始的内容插入时操作按钮都存在使用。
setContentInsetStartWithNavigation(int insetStartWithNavigation)
设置启动内容插入时,导航按钮存在使用。
setContentInsetsRelative(int contentInsetStart, int contentInsetEnd)
设置此相对布局方向工具栏的内容插图。
setLogo(Drawable drawable)
设置一个Log图片。
setLogoDescription(int resId)
设置Log的说明。
setNavigationContentDescription(CharSequence description)
如果存在设置导航按钮的内容。
setNavigationOnClickListener(View.OnClickListener listener)
设置一个侦听器来导航事件
setOverflowIcon(Drawable icon)
设置图标使用的溢出按钮。
setSubtitle(CharSequence subtitle)
设置此工具栏的字幕。
setSubtitleTextAppearance(Context context, int resId)
设置文本颜色,大小,样式,颜色提示,并突出显示颜色从指定TextAppearance资源。
setTitleMargin(int start, int top, int end, int bottom)
设置标题边距。
setTitleTextAppearance(Context context, int resId)
设置文本颜色,大小,样式,颜色提示,并突出显示颜色从指定TextAppearance资源。
setTitleTextColor(int color)
设置标题的文本颜色,如果存在的话