Toolbar
本文主要介绍Toolbar的使用,toolbar这个控件在v7包下,废话不多说,直接讲解步骤。
- 首先主题(style)要继承NoActionBar
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
- 在布局文件中引入toobar
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
toolbar可以设置标题(title)和子标题(subTitle)
- 在Activity中设置setSupportActionBar(toolbar);
这样toolbar就显示出来了。
设置左侧的图标
app:navigationIcon="@mipmap/ic_launcher_round"
设置logo
app:logo="@android:drawable/ic_lock_power_off"
注意上图的navtgation和logo的区别
toolbar标题的文字可以根据titleTextAppearance来更改文字的大小
app:titleTextAppearance="@style/ToolbarTextStyle"
<!--设置toolbar标题的文字样式-->
<style name="ToolbarTextStyle" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">13sp</item>
</style>
还可以使用自带的返回箭头,这时需要去掉navigationIcon,不然无法显示自带的返回按钮。
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (null != actionBar) {
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
}
注意getSupportActionBar需要在setSupportActionBar后面调用
同样的,点击左侧按钮的事件监听是
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "返回", Toast.LENGTH_SHORT).show();
}
});
还有一种返回activity的方式:
就是在清单文件中配置:在目标的activity中配置
<activity
android:name=".SecondActivity"
android:parentActivityName=".MainActivity"
>
//兼容4.0以下的版本
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"
/>
</activity>
设置toolbar的菜单
在activity中重写onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
菜单的点击事件需要重写
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return true;
}