Android - ActionBar取消 ,ToolBar设置
### 取消 ActionBar - App标题栏-继承Activity 主题基础修改 - NoActionBar ... <style name="AppThem" parent="Theme.MaterialComponents.DayNight.NoActionBar"> ... 主题配置 item项 ... <item name="windowActionBar">false</item> <item name="windowNoTitle">false</item> </style> ... java设置 - 如果主题隐藏了,则获取不到对象 ActionBar actionBar = getSupportActionBar(); actionBar.hide(); ... ##### 替换 和设置 ActionBar 不够灵活-自定义不强,采用ToolBar插件替换 替换机制 - 组件 和属性 nav + title + menu <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:layout_scrollFlags="scroll|enterAlways|snap" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 设置组件替换ActionBar @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //2-1 Toolbar toolbar = findViewById(R.id.toolbar); // toolbar.setTitle("Java中第二次设置"); setSupportActionBar(toolbar); //开启 nav ,设置nav图标 ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_menu); } .... 用onCreateOptionsMenu方法添加menu //2-2 @Override public boolean onCreateOptionsMenu(Menu menu) { // return super.onCreateOptionsMenu(menu); //渲染 menu 板块 getMenuInflater().inflate(R.menu.toolbar, menu); return true; } 用onOptionsItemSelected给菜单选项绑定事件 //2-3 @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { // return super.onOptionsItemSelected(item); switch (item.getItemId()) { case R.id.backup: Toast.makeText(this, "back", Toast.LENGTH_SHORT).show(); break; case R.id.delete: Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show(); break; case R.id.setting: Toast.makeText(this, "setting", Toast.LENGTH_SHORT).show(); break; case android.R.id.home: drawerLayout.openDrawer(GravityCompat.START); break; default: } return true; }
另外Toolbar常和 AppBarLayout使用
Android学习之基础知识十五 — 最佳UI体验(Material Design实战) - 叶是风的眼泪 - 博客园 (cnblogs.com)
修改toolbar icon导航左边间距 - 必须使用主题属性 app:theme
https://gist.github.com/ktakeda47/069522ca7b4de3cb31a6
或者全局主题修改:定义style,主题配置
https://blog.csdn.net/LABLENET/article/details/51260059