当前位置: 首页 > news >正文

Android开发者必备:ThemedToggleButtonGroup API完全参考指南

Android开发者必备:ThemedToggleButtonGroup API完全参考指南

【免费下载链接】themed-toggle-button-groupCustomisable toggle buttons inside a FlexboxLayout.项目地址: https://gitcode.com/gh_mirrors/th/themed-toggle-button-group

ThemedToggleButtonGroup是Android平台上高度可定制的轻量级切换按钮库,基于Google的FlexboxLayout构建,为开发者提供了灵活且强大的切换按钮组解决方案。无论你是Android开发新手还是经验丰富的开发者,这个库都能帮助你快速创建美观、功能丰富的切换按钮界面。

🚀 核心功能概览

ThemedToggleButtonGroup库的核心功能包括单选框模式复选框模式,支持丰富的动画效果和高度自定义的样式配置。通过简单的XML配置或代码调用,你可以创建出专业级的用户界面。

📦 快速安装指南

在你的Android项目中使用ThemedToggleButtonGroup非常简单。首先在项目的build.gradle文件中添加依赖:

dependencies { implementation 'nl.bryanderidder:themed-toggle-button-group:1.4.1' }

对于Java项目,还需要添加Kotlin标准库依赖:

implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.0'

🎯 单选框模式实现

单选框模式允许用户从多个选项中选择一个。这是最常见的切换按钮使用场景:

<nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup android:id="@+id/time" android:layout_width="match_parent" android:layout_height="wrap_content" app:justifyContent="center"> <nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="38dp" app:toggle_text="5:30PM" /> <nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="38dp" app:toggle_text="7:30PM" /> </nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup>

🔢 复选框模式配置

多选模式通过toggle_selectableAmounttoggle_requiredAmount属性控制可选和必选数量:

<nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup android:id="@+id/tags" android:layout_width="match_parent" android:layout_height="wrap_content" app:toggle_selectableAmount="3" app:toggle_requiredAmount="1" app:justifyContent="space_between" app:flexWrap="wrap"> <nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:id="@+id/tag1" android:layout_width="wrap_content" android:layout_height="30dp" android:layout_margin="3dp" app:toggle_text="社交" /> <!-- 更多按钮 --> </nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup>

✨ 动画效果大全

ThemedToggleButtonGroup提供了6种炫酷的选择动画效果,让你的应用界面更加生动:

动画类型效果描述示例
CIRCULAR_REVEAL圆形展开动画
FADE淡入淡出动画
HORIZONTAL_SLIDE水平滑动动画
VERTICAL_SLIDE垂直滑动动画
HORIZONTAL_WINDOW水平窗口动画
VERTICAL_WINDOW垂直窗口动画

在XML中设置动画:

app:toggle_selectAnimation="circular_reveal"

或者在代码中动态设置:

val themedToggleButtonGroup = findViewById<ThemedToggleButtonGroup>(R.id.themedToggleButtonGroup) themedToggleButtonGroup.selectAnimation = SelectAnimation.HORIZONTAL_SLIDE

🎨 图标按钮定制

ThemedToggleButtonGroup支持带图标的按钮,可以显示不同的选中和未选中图标:

<nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:id="@+id/btnMic" android:layout_width="70dp" android:layout_height="70dp" app:toggle_btnCornerRadius="50dp" app:toggle_borderWidth="5dp" app:toggle_borderColor="#C6C6C6" app:toggle_selectedBorderColor="#5e6fed" app:toggle_icon="@drawable/ic_mic_off_black_24dp" app:toggle_iconColor="#C6C6C6" app:toggle_selectedIcon="@drawable/ic_mic_black_24dp" app:toggle_backgroundColor="@android:color/white" app:toggle_iconPadding="18dp" />

📝 文本+图标组合

结合文本和图标创建更加丰富的按钮样式:

<nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:id="@+id/card1" android:layout_width="0dp" android:layout_height="145dp" app:layout_flexGrow="1" app:toggle_selectedTextColor="@android:color/white" app:toggle_selectedBackgroundColor="#5e6fed" app:toggle_icon="@drawable/replace_with_svg_icon" app:toggle_iconGravity="top|center" app:toggle_iconPaddingTop="15dp" app:toggle_iconPaddingHorizontal="15dp" app:toggle_textPaddingBottom="20dp" app:toggle_text="多项选择" app:toggle_textGravity="bottom|center" />

🔧 ThemedToggleButtonGroup API参考

核心属性配置

属性默认值描述
toggle_selectableAmount1允许选择的按钮数量
toggle_requiredAmount1必须选择的按钮数量
toggle_horizontalSpacing10dp按钮之间的水平间距
toggle_selectAnimationCIRCULAR_REVEAL选择动画类型

代码API方法

// 获取所有按钮 val allButtons = themedButtonGroup.buttons // 获取选中的按钮 val selectedButtons = themedButtonGroup.selectedButtons // 设置选择监听器 themedButtonGroup.setOnSelectListener { button: ThemedButton -> // 处理按钮选择 } // 动态选择按钮(带动画) buttonGroup.selectButtonWithAnimation(btn) // 动态选择按钮(无动画) buttonGroup.selectButton(btn) // 启用/禁用按钮 btn.isEnabled = false

🎨 ThemedButton自定义属性大全

文本相关属性

属性默认值描述
toggle_text空字符串按钮文本
toggle_selectedTexttoggle_text选中时的文本
toggle_textSize15sp文本大小
toggle_textAlignmentcenter文本对齐方式
toggle_fontFamilyRoboto字体文件路径

颜色相关属性

属性默认值描述
toggle_backgroundColor#EBEBEB未选中背景色
toggle_selectedBackgroundColor#5E6FED选中背景色
toggle_textColor#5E5E5E未选中文本颜色
toggle_selectedTextColor#FFFFFF选中文本颜色

图标相关属性

属性默认值描述
toggle_iconnull按钮图标
toggle_selectedIcontoggle_icon选中时的图标
toggle_iconColor#5E5E5E图标颜色
toggle_iconGravitytop|start图标位置

边框和圆角

属性默认值描述
toggle_btnCornerRadius21dp按钮圆角半径
toggle_circularCornerRadiusfalse是否圆形按钮
toggle_borderWidth0dp边框宽度
toggle_selectedBorderWidthtoggle_borderWidth选中边框宽度
toggle_borderColor#5E5E5E边框颜色
toggle_selectedBorderColortoggle_borderColor选中边框颜色

💻 动态创建按钮

除了XML布局,你还可以完全通过代码创建ThemedToggleButtonGroup:

// 创建按钮组 val buttonGroup = ThemedToggleButtonGroup(context) buttonGroup.justifyContent = JustifyContent.CENTER yourRootView.addView(buttonGroup) // 创建并添加按钮 val btn1 = ThemedButton(context) btn1.text = "按钮1" buttonGroup.addView(btn1, ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT ) ) // 动态选择按钮 buttonGroup.selectButtonWithAnimation(btn1)

🔍 选择状态监听

监听按钮选择状态变化:

val themedButtonGroup = findViewById<ThemedToggleButtonGroup>(R.id.idOfYourThemedButtonGroup) themedButtonGroup.setOnSelectListener { button: ThemedButton -> // 处理选中的按钮 when (button.id) { R.id.btn1 -> handleButton1Selection() R.id.btn2 -> handleButton2Selection() } } // 获取所有未选中的按钮 val unselectedButtons = allButtons.filter { !it.isSelected }

📱 实际应用场景

ThemedToggleButtonGroup在以下场景中特别有用:

  1. 时间选择器- 选择会议时间、预约时间
  2. 标签选择器- 文章标签、产品分类
  3. 设置选项- 应用设置、偏好设置
  4. 筛选器- 商品筛选、内容过滤
  5. 多步骤表单- 向导步骤、问卷选项

🛠️ 最佳实践建议

  1. 保持一致性- 在整个应用中使用相同的按钮样式
  2. 合理间距- 使用toggle_horizontalSpacing确保按钮间距合适
  3. 动画选择- 根据应用风格选择合适的动画效果
  4. 颜色搭配- 使用对比色区分选中和未选中状态
  5. 响应式设计- 利用FlexboxLayout的响应式特性

📚 官方资源路径

  • 核心库文件: library/src/main/java/nl/bryanderidder/themedtogglebuttongroup/ThemedToggleButtonGroup.kt
  • 按钮组件: library/src/main/java/nl/bryanderidder/themedtogglebuttongroup/ThemedButton.kt
  • 示例项目: demo-toggle-cards/

🎉 总结

ThemedToggleButtonGroup为Android开发者提供了一个强大而灵活的切换按钮解决方案。通过丰富的API和高度可定制的样式,你可以轻松创建出符合设计需求的专业级切换按钮界面。无论是简单的单选按钮还是复杂的多选标签系统,这个库都能满足你的需求。

记住,良好的用户体验从细节开始,ThemedToggleButtonGroup正是那个能帮你完善细节的强大工具。开始使用它,让你的Android应用界面更加出色吧!🚀

【免费下载链接】themed-toggle-button-groupCustomisable toggle buttons inside a FlexboxLayout.项目地址: https://gitcode.com/gh_mirrors/th/themed-toggle-button-group

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1136108/

相关文章:

  • 从Netgear路由器漏洞CVE-2019-20760学习UPnP服务安全与命令注入实战
  • Formula.js统计函数详解:从基础到高级应用指南 [特殊字符]
  • Dawnscanner深度解析:680+安全检查如何保护你的Ruby应用
  • Windows Defender终极禁用指南:5步快速关闭系统安全防护
  • Person Search API接口开发:构建可调用的搜索服务
  • ISP时域降噪强度调试:运动拖影与噪声的权衡,3步定位与参数优化指南
  • GoHBase生产部署指南:如何配置高可用的HBase客户端
  • deepTools社区贡献指南:如何参与开源生物信息工具开发
  • RedisInsight批量操作架构深度解析:从原理到实践的最佳实践
  • 如何快速上手Unreal ImGui?从安装到调试的完整步骤教程
  • clipboard API详解:Init、Read、Write与剪贴板变化监听实战
  • Person Search未来发展方向:计算机视觉中的人体搜索技术演进
  • 如何用Semi-Utils让批量水印处理从3小时变3分钟?
  • ChunkHound架构解析:从Tree-sitter到向量数据库的设计哲学
  • BabyAI环境配置完整教程:从零开始搭建AI训练平台
  • BabyAI入门教程:5步快速搭建你的第一个语言理解AI环境
  • DeepSeek-R1-Distill-Qwen-32B:32K上下文推理模型的部署实战指南
  • 终极指南:如何实现Switch与WiiU《塞尔达传说:旷野之息》存档自由转换
  • 如何在5分钟内安装difflogic?完整环境配置教程与CUDA依赖解决
  • Vue Chartkick跨框架对比:为什么它是Vue项目数据可视化的最佳选择?
  • 贡献Recog项目:从提交新指纹到参与社区协作完整指南
  • 终极指南:如何用Ice彻底掌控你的macOS菜单栏
  • Changes构建协调器:Dropbox开源的一站式代码变更仪表板解决方案终极指南
  • Rust Signals异步编程指南:如何与async/await完美集成实现高效状态同步
  • 适合职场人:日均花3毛,2026会议纪要每月帮你省出28小时
  • Java项目安全漏洞清理实战:从扫描到修复的完整指南
  • YOLOv5-Lite能否解决嵌入式AI目标检测的算力瓶颈问题?
  • 解放双手:AutoClicker自动化鼠标点击工具完全指南
  • RPCS3:开源PS3模拟器的技术解密与实战指南
  • React-redux-toastr 确认对话框完全指南:confirm方法的10种高级用法