Duo Navigation Drawer 完整指南:3 个步骤配置 content 与 menu 视图
Duo Navigation Drawer 完整指南3 个步骤配置 content 与 menu 视图【免费下载链接】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 导航抽屉开源库。与传统抽屉覆盖在主内容之上不同它让主内容content 视图向右侧滑开露出藏在底部的菜单menu 视图并自带缩放动画交互体验十分新颖。本指南面向新手只需 3 个步骤即可完成 content 与 menu 视图的配置快速集成到你的 Android 项目中。1. 为什么选择 Duo Navigation Drawer比起官方DrawerLayout这个库的最大亮点是内容滑出式动画当你打开抽屉时页面主体不会被动地盖住而是整体缩放并向右滑动menu 视图在下方浮现视觉层次感更强。默认自带 content 缩放、menu 缩放与透明度动画API 与官方DrawerLayout高度相似迁移成本低支持 AndroidXv3.0.0 起默认兼容提供开箱即用的DuoMenuView菜单项、页头页脚全部可自定义。该项目包含演示 Appapp模块、核心库duo-navigation-drawer模块与完整示例代码clone 仓库即可运行体验https://gitcode.com/gh_mirrors/du/duo-navigation-drawer。2. 第 1 步添加 DuoDrawerLayout 作为根视图在布局文件中把根布局换成DuoDrawerLayout它是整个抽屉的容器nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:idid/drawer android:layout_widthmatch_parent android:layout_heightmatch_parent /核心实现位于 DuoDrawerLayout.java它基于RelativeLayout构建内部通过ViewDragHelper处理拖拽逻辑。3. 第 2 步配置 content 视图配置 content 视图有两种方式任选其一即可方式一通过app:content属性引用布局nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayout app:contentlayout/content ... /方式二在抽屉内直接添加带content标签的视图推荐示例项目即采用此方式nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayout ... LinearLayout android:layout_widthmatch_parent android:layout_heightmatch_parent android:tagstring/tag_content androidx.appcompat.widget.Toolbar android:idid/toolbar ... / FrameLayout android:idid/container android:layout_widthmatch_parent android:layout_heightmatch_parent / /LinearLayout /nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayouttag的取值定义在 tags.xml 中content标签告诉库哪一块才是主内容区域。完整写法可参考 activity_main.xml 与 content.xml。4. 第 3 步配置 menu 视图menu 视图的配置方式与 content 完全对称同样有两种方式一通过app:menu属性引用布局nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayout app:menulayout/menu ... /方式二在抽屉内添加带menu标签的视图nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayout ... FrameLayout android:layout_widthmatch_parent android:layout_heightmatch_parent android:tagstring/tag_menu / /nl.psdcompany.duonavigationdrawer.views.DuoDrawerLayout3.1 推荐直接使用 DuoMenuView想要菜单效果接近官方 Demo建议直接使用DuoMenuView它支持自定义页头header与页脚footer并内置菜单项列表nl.psdcompany.duonavigationdrawer.views.DuoMenuView android:idid/menu android:layout_widthmatch_parent android:layout_heightmatch_parent android:tagstring/tag_menu app:headerlayout/duo_view_header app:footerlayout/duo_view_footer /参考 menu.xml 与页头页脚布局 duo_view_header.xml、duo_view_footer.xml。5. 初始化抽屉并监听菜单点击配置好布局后在Activity中初始化DuoDrawerToggle相当于官方ActionBarDrawerToggle的改造版并给DuoMenuView设置适配器与点击监听DuoDrawerLayout drawerLayout findViewById(R.id.drawer); DuoDrawerToggle drawerToggle new DuoDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawerLayout.setDrawerListener(drawerToggle); drawerToggle.syncState(); DuoMenuView duoMenuView (DuoMenuView) drawerLayout.getMenuView(); duoMenuView.setAdapter(new MenuAdapter(mTitles)); duoMenuView.setOnMenuClickListener(this);在onOptionClicked回调中切换 Fragment、更新标题并关闭抽屉。完整逻辑可查看 MainActivity.java菜单适配器参考 MenuAdapter.java。6. 自定义抽屉动画效果Duo Navigation Drawer 支持丰富的动画参数全部在 XML 中即可配置属性作用示例值contentScaleClosed/contentScaleOpen内容关闭/打开时的缩放1.0 / 0.7menuScaleClosed/menuScaleOpen菜单关闭/打开时的缩放1.1 / 1.0menuAlphaClosed/menuAlphaOpen菜单透明度0.0 / 1.0marginFactor内容滑出时右侧保留的宽度比例0.7app:contentScaleClosed1.0 app:contentScaleOpen0.7 app:menuScaleClosed1.1 app:menuScaleOpen1.0 app:menuAlphaClosed0.0 app:menuAlphaOpen1.0 app:marginFactor0.7默认值定义在 DuoDrawerLayout.java属性声明见 attr.xml。7. 常见问题小结v2.0.8 与 v3.0.0 怎么选使用旧版 Support 库选 v2.0.8使用 AndroidX 选 v3.0.0。如何区分 content 和 menu记住一句话content 是被滑开的主体menu 是藏在下面露出的菜单两者缺一不可。想让菜单样式更炫结合DuoOptionViewduo_view_option.xml可以做出与 Demo 一致的选中态效果。总结通过以上 3 个步骤——添加DuoDrawerLayout、配置 content 视图、配置 menu 视图再配合一行初始化代码你就能在自己的 Android 项目中拥有一个交互流畅、动画独特的导航抽屉。这个库代码结构清晰、示例完整非常适合学习自定义 View 与手势交互也适合直接在生产环境中使用。赶紧 clone 仓库动手试试吧【免费下载链接】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),仅供参考

相关新闻

WGL波形生成语言—新手入门学习(三)

WGL波形生成语言—新手入门学习(三)

WGL波形生成语言—新手入门学习(一) WGL波形生成语言—新手入门学习(二) WGL波形生成语言—新手快速入门—导航 目录 2.4.3.2扫描单元 2.4.3.3 扫描状态 2.4.3.4 扫描链 2.4.3.5 时序模板 2.4.3.2扫描单元 扫描单元块用于…

2026/8/20 5:38:11 阅读更多 →
车身域自动化测试:从CAN/LIN总线到Python框架的工程实践

车身域自动化测试:从CAN/LIN总线到Python框架的工程实践

1. 从“手工作坊”到“自动化产线”:车身域测试的必然演进 如果你在新能源汽车的研发或测试部门待过,尤其是负责车身域控制器(BCM)、无钥匙进入启动系统(PEPS)这类功能,一定对下面这个场景不陌生…

2026/8/21 10:56:14 阅读更多 →
为什么你需要一个扑克机器人?三大平台自动玩牌的开源答案

为什么你需要一个扑克机器人?三大平台自动玩牌的开源答案

为什么你需要一个扑克机器人?三大平台自动玩牌的开源答案 【免费下载链接】Poker Fully functional Pokerbot that works on PartyPoker, PokerStars and GGPoker, scraping tables with Open-CV (adaptable via gui) or neural network and making decisions based…

2026/8/21 6:56:21 阅读更多 →

最新新闻

熵权法:基于信息熵的客观权重计算原理与Python实现

熵权法:基于信息熵的客观权重计算原理与Python实现

1. 项目概述:从“拍脑袋”到“算权重”在数学建模、数据分析乃至各类决策评估中,我们常常面临一个灵魂拷问:这几个指标,到底谁更重要?比如评价一个城市的综合发展水平,GDP、人均收入、绿化率、空气质量、教…

2026/8/22 6:19:26 阅读更多 →
AI时代技术面试新趋势与应对策略

AI时代技术面试新趋势与应对策略

1. 技术面试的范式转移 2026年的技术面试现场已经和五年前截然不同。当AI辅助编程工具能够自动生成80%的业务代码时,面试官不再满足于考察LeetCode算法题的背诵能力。上周我刚经历了一场典型的2026年SDE终面:系统设计环节需要现场用Copilot X完成模块开发…

2026/8/22 6:19:26 阅读更多 →
AI校招薪资解析:百万年薪offer的技术门槛与突围路径

AI校招薪资解析:百万年薪offer的技术门槛与突围路径

1. AI行业校招薪资现状与市场背景2023年AI领域校招薪资水平持续成为行业焦点话题,头部企业为顶尖人才开出的百万年薪package屡见报端。但真实情况是,这类高薪offer仅集中在特定技术方向的前1%毕业生群体。根据我近三年跟踪的校招数据,AI算法岗…

2026/8/22 6:19:26 阅读更多 →
移动AI智能体的知识驱动推理:从概念到工程实践

移动AI智能体的知识驱动推理:从概念到工程实践

1. 项目概述:当AI智能体开始“思考”最近和几个做AI应用落地的朋友聊天,大家不约而同地提到了同一个痛点:现在的AI智能体(Agent),尤其是面向移动端或具身场景的,能力看起来花哨,但一…

2026/8/22 6:19:26 阅读更多 →
微信小程序云开发实战:从架构设计到性能优化的全链路指南

微信小程序云开发实战:从架构设计到性能优化的全链路指南

1. 项目概述:从零到国奖的实战复盘去年,我带着一支学生团队,用几个月的时间从零开始打磨了一个微信小程序,最终拿下了全国大学生微信小程序应用开发赛的全国三等奖。这个成绩不算顶尖,但整个过程踩过的坑、积累的经验&…

2026/8/22 6:19:26 阅读更多 →
Nginx核心知识点与面试高频问题解析

Nginx核心知识点与面试高频问题解析

1. Nginx面试核心知识点解析作为Web服务领域的瑞士军刀,Nginx在技术面试中的考察频率居高不下。根据我对数百场技术面试的观察统计,Nginx相关问题主要集中在配置优化、架构原理和故障排查三个维度。以下是面试官最常深挖的12个技术要点:1.1 基…

2026/8/22 6:18:26 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →