返回
ToolBar封装策略,一文读懂ToolBar的封装全过程
Android
2023-09-13 05:54:12
工具栏封装策略
封装工具栏有许多策略,这里介绍几种最常见的方法。
策略一:使用原生toolbar进行封装
- 处理ToolBar的返回事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mDrawerToggle.onOptionsItemSelected(this, mMenuItem)) {
return true;
}
}
return super.onKeyDown(keyCode, event);
}
- 处理中间Title重写setTitle()
@Override
public void setTitle(CharSequence title) {
mToolbar.setTitle(title);
mDrawerToggle.setDrawerIndicatorEnabled(true);
}
- 处理右侧可能是文字或图片按钮中间可能是多按钮
mToolbar.inflateMenu(R.menu.menu_main);
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
// Handle action settings
return true;
case R.id.action_favorite:
// Handle action favorite
return true;
default:
return false;
}
}
});
- 所谓的沉浸式
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
- 最后使用超简单
<android.support.v7.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:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
策略二:使用第三方库进行封装
目前有许多第三方库可以帮助您封装ToolBar,例如:
这些库提供了许多开箱即用的功能,可以帮助您快速构建ToolBar。
策略三:自定义ToolBar
如果您需要更加灵活的ToolBar,您也可以自定义ToolBar。您可以继承ToolBar类,并重写其方法以实现您想要的功能。
总结
ToolBar封装有许多策略,您可以根据您的需要选择合适的策略。如果您需要快速构建ToolBar,可以使用第三方库。如果您需要更加灵活的ToolBar,您可以自定义ToolBar。