actionbar 的坑
当引用了support包时:getSupportActionBar();
toolbat 的menu不显示icon图标问题:
在AndroidManifest.xml中设置:
application : android:theme="@style/Theme.MyApplication"
activity : android:theme="@style/Theme.AppCompat.NoActionBar"
在layout中添加toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
自己的activity继承AppCompatActivity
public class MainActivity extends AppCompatActivity
在Activity的onCreate中引入toolbar
Toolbar toolbar=findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
重写onCreateOptionsMenu方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//引入menu菜单资源
new MenuInflater(this).inflate(R.menu.main_menu,menu);
//设置菜单显示图标
setIconsVisible(menu,true);
return super.onCreateOptionsMenu(menu);
}
设置菜单显示图标
private void setIconsVisible(Menu menu, boolean flag) {
//判断menu是否为空
if(menu != null) {
try {
//如果不为空,就反射拿到menu的setOptionalIconsVisible方法
Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
//暴力访问该方法
method.setAccessible(true);
//调用该方法显示icon
method.invoke(menu, flag);
} catch (Exception e) {
e.printStackTrace();
}
}
}
效果图展示: