1. 设置菜单的选项不覆盖Toolbar
在主题中加入这个属性: <item name=“overlapAnchor”>false</item>
<resources>
<!-- 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>
<!--设置popupMenu弹出位置不覆盖toolbar -->
<item name="overlapAnchor">false</item>
</style>
</resources>
2. 使用及设置原生back图标
2.1 设置显示原生back图标
xml布局:
注意:要想使用原生back图标则不能在布局中使用 app:navigationIcon=“xxx” 来设置导航图标,否则不会显示back图标
<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=".activity.MainActivity"
android:orientation="vertical"
android:background="#F2F3F3F3">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="8dp"
app:title="开发者助手"
app:titleTextColor="#fff"
/>
</LinearLayout>
Activity中:
// 初始化Toolbar
Toolbar tb = findViewById(R.id.toolbar);
setSupportActionBar(tb);
ActionBar actionBar = getSupportActionBar();
// 设置返回图标
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
2.2 设置原生图标的返回事件
Activity中:
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
//点击back键finish当前activity
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
2.3 设置图标的颜色
我们可以看到,原生的back图标是深灰色的,我们可以通过设置样式来设置把back的图标颜色
此处以白色为例:<item name=“colorControlNormal”>#fff</item>
style.xml
<resources>
<!-- 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>
<!--设置popupMenu弹出位置不覆盖toolbar -->
<item name="overlapAnchor">false</item>
<!--ToolBar图标颜色-->
<item name="colorControlNormal">#fff</item>
</style>
<!--蓝色按钮样式-->
<style name="BlueButtonStyle" >
<item name="android:textAllCaps">false</item>
<item name="android:layout_margin">3dp</item>
<item name="android:background">@drawable/selector_blue_button_bg</item>
<item name="android:textColor">#fff</item>
<item name="android:textSize">16sp</item>
</style>
效果图:
2.4 设置菜单中三个点的颜色
在2.3中的设置会影响右上角三个点的颜色,所以此处也自动变成了白色
设置前:
设置后: