尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

Android开发者必备:ThemedToggleButtonGroup API完全参考指南
📅 发布时间:2026/7/6 17:41:27

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_selectableAmount和toggle_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),仅供参考

相关新闻

  • Person Search未来发展方向:计算机视觉中的人体搜索技术演进
  • 如何快速上手Unreal ImGui?从安装到调试的完整步骤教程
  • BabyAI入门教程:5步快速搭建你的第一个语言理解AI环境

最新新闻

  • 终极指南:如何在5分钟内搞定VMware虚拟机与主机的文件共享
  • 连续三天项目对接攒下十几段会议录音:2026实用会议纪要生成指南
  • 终极自动化方案:使用mssql-scripter实现SQL Server DevOps持续集成
  • CosyVoice_For_Windows安全指南:保护你的语音数据和API接口
  • 终极Office激活指南:3分钟解锁Microsoft 365完整功能的免费解决方案
  • MongoKitten与Hummingbird集成:构建轻量级Swift API服务

日新闻

  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号