资讯详情

资讯详情

建站行业动态 · 设计趋势 · 数字化升级干货

Duo Navigation Drawer API 速查手册:核心方法与接口一网打尽

Duo Navigation Drawer API 速查手册:核心方法与接口一网打尽 Duo Navigation Drawer API 速查手册核心方法与接口一网打尽【免费下载链接】duo-navigation-drawerA flexible, easy to use, unique drawer library for your Android project.项目地址: https://gitcode.com/gh_mirrors/du/duo-navigation-drawerDuo Navigation Drawer 是一款专为 Android 项目打造的灵活、易用且极具辨识度的抽屉导航库它不像传统抽屉那样覆盖在内容之上而是让主内容向右滑开露出底层菜单并自动附带内容缩放、菜单淡入等细腻动效。无论你是首次接触还是想快速回顾这份 Duo Navigation Drawer API 速查手册都能帮你把核心方法与接口一网打尽开箱即用。快速认识四大核心类的职责分工先记住四个类整个库的 API 就都在它们身上类名职责DuoDrawerLayout抽屉容器负责滑动手势、开合动画、缩放效果与状态管理DuoMenuView菜单视图绑定数据适配器、处理头部/底部/选项点击DuoOptionView单个菜单项负责文字绑定与选中态指示器DuoDrawerToggle抽屉开关驱动 Toolbar 上的汉堡菜单动画核心源码集中在views/与widgets/两个目录下配合本文逐一看即可。DuoDrawerLayout 开合与状态最常用的 5 个方法DuoDrawerLayout的 API 与官方DrawerLayout高度兼容上手几乎零成本源码见 DuoDrawerLayout.java。方法作用openDrawer()带动画打开抽屉closeDrawer()带动画关闭抽屉isDrawerOpen()抽屉是否完全展开isDrawerVisible()抽屉是否可见拖拽中即为 truesetDrawerLockMode(int)锁定/解锁抽屉手势锁定模式用三个常量LOCK_MODE_UNLOCKED默认可自由滑动、LOCK_MODE_LOCKED_CLOSED锁定关闭、LOCK_MODE_LOCKED_OPEN锁定展开。抽屉状态则对应STATE_IDLE、STATE_DRAGGING、STATE_SETTLING三个常量。duoDrawerLayout.openDrawer(); duoDrawerLayout.setDrawerLockMode(DuoDrawerLayout.LOCK_MODE_LOCKED_CLOSED);视图获取与动态替换getMenuView / setContentView抽屉里的菜单和内容视图都能随时获取或热替换getMenuView()/setMenuView(View)取得或替换菜单视图getContentView()/setContentView(View)取得或替换内容视图注意替换的 View 不能已有父容器否则会抛出IllegalStateException。日常开发最常见的写法是从布局中先拿到DuoDrawerLayout再取出内置的DuoMenuViewDuoDrawerLayout drawerLayout findViewById(R.id.drawer); DuoMenuView duoMenuView (DuoMenuView) drawerLayout.getMenuView();动画效果配置方法缩放、透明度与边距一网打尽这是 Duo 系列最出彩的地方——所有动效参数都提供了对应 setter运行时可随意调整内容缩放setContentScaleClosed()关闭时 1.0、setContentScaleOpen()打开时 0.7菜单缩放setMenuScaleClosed()关闭时 1.1、setMenuScaleOpen()打开时 1.0菜单透明度setMenuAlphaClosed()默认 0.0 全透明、setMenuAlphaOpen()默认 1.0点击关闭层缩放setClickToCloseScale()默认 0.7内容露出比例setMarginFactor()默认 0.7设为 1.0 则内容完全滑出屏幕duoDrawerLayout.setContentScaleOpen(0.8f); duoDrawerLayout.setMarginFactor(0.75f);XML 属性对照表布局里直接定制动效不想写代码这些属性都可以直接在 XML 中声明定义见 attr.xml属性说明默认值app:menu/app:content菜单/内容布局引用无app:contentScaleClosed/contentScaleOpen内容关闭/打开时缩放1.0 / 0.7app:menuScaleClosed/menuScaleOpen菜单关闭/打开时缩放1.1 / 1.0app:menuAlphaClosed/menuAlphaOpen菜单透明度0.0 / 1.0app:clickToCloseScale点击关闭层缩放0.7app:marginFactor内容露出比例0.7DuoMenuView 用法适配器数据源与点击回调DuoMenuView源码DuoMenuView.java本身就是一个 ViewGroup菜单项通过适配器填充setAdapter(Adapter)/getAdapter()设置菜单数据源数据变化自动刷新setOnMenuClickListener(OnMenuClickListener)注册点击监听setHeaderView(int)/setFooterView(int)动态设置头部/底部布局setBackground(int)动态更换背景 Drawable点击回调OnMenuClickListener是核心接口三个方法覆盖全部交互场景duoMenuView.setOnMenuClickListener(new DuoMenuView.OnMenuClickListener() { Override public void onOptionClicked(int position, Object objectClicked) { // 菜单项被点击切换 Fragment、更新选中态、关闭抽屉 } Override public void onHeaderClicked() { /* 头部被点击 */ } Override public void onFooterClicked() { /* 底部按钮被点击 */ } });参考MainActivity的完整串联写法可看 MainActivity.java。DuoOptionView 绑定方法bind 三种重载一网打尽DuoOptionView代表单个菜单项源码DuoOptionView.java核心是三种bind()重载重载效果bind(String)仅设置文字无指示器bind(String, Drawable)文字 选中态圆形指示器bind(String, Drawable, Drawable)文字 圆形指示器 侧边矩形指示器配套的选中态 API 有setSelected(boolean)/isSelected()以及setSelectorEnabled()、setSideSelectorEnabled()控制两种指示器的开关。菜单项通常继承BaseAdapter在getView()里调用参考 MenuAdapter.javaDuoOptionView optionView new DuoOptionView(parent.getContext()); optionView.bind(option, null, null);DuoDrawerToggle 联动汉堡菜单动画的接入方法DuoDrawerToggle源码DuoDrawerToggle.java是官方ActionBarDrawerToggle的改造版让 Toolbar 图标在汉堡与箭头间平滑切换接入只需三步构造new DuoDrawerToggle(activity, drawerLayout, toolbar, openDesc, closeDesc)监听drawerLayout.setDrawerListener(drawerToggle)同步在onPostCreate中调用drawerToggle.syncState()别忘了在onConfigurationChanged与onOptionsItemSelected中转调对应方法。常用开关还有setDrawerIndicatorEnabled(boolean)是否显示动画指示器与setHomeAsUpIndicator(...)自定义 Up 图标。速查清单照着写就对了 开合抽屉openDrawer()/closeDrawer()/isDrawerOpen() 手势控制setDrawerLockMode(LOCK_MODE_*) 动效定制内容缩放、菜单缩放、透明度、marginFactor 菜单数据DuoMenuView.setAdapter()setOnMenuClickListener() 菜单项渲染DuoOptionView.bind()三种重载 工具栏联动DuoDrawerToggle构造 syncState()掌握了这份 Duo Navigation Drawer API 速查手册无论是搭建新项目还是排查旧代码你都能快速定位到正确的方法与接口把这款独特的抽屉导航库用出花来。【免费下载链接】duo-navigation-drawerA flexible, easy to use, unique drawer library for your Android project.项目地址: https://gitcode.com/gh_mirrors/du/duo-navigation-drawer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关资讯