
从入门到精通ThemedToggleButtonGroup配置与自定义教程【免费下载链接】themed-toggle-button-groupCustomisable toggle buttons inside a FlexboxLayout.项目地址: https://gitcode.com/gh_mirrors/th/themed-toggle-button-groupThemedToggleButtonGroup是一个高度模块化的轻量级Android切换按钮库基于FlexboxLayout构建支持单选、多选等多种选择模式并提供丰富的动画效果和自定义选项。无论是构建简单的标签选择器还是复杂的交互界面它都能帮助开发者快速实现美观且功能完善的切换按钮组。快速了解什么是ThemedToggleButtonGroupThemedToggleButtonGroup是扩展自Google FlexboxLayout的Android组件库它将灵活的布局系统与精美的切换按钮结合在一起。核心优势包括灵活布局继承FlexboxLayout的全部特性支持类似CSS Flexbox的布局方式多种选择模式支持单选、多选以及限制选择数量的高级模式丰富动画效果内置多种选择动画如圆形揭示、淡入淡出、滑动等高度自定义从颜色、形状到图标、文本几乎所有视觉元素都可定制图1ThemedToggleButtonGroup在深色主题下的多种选择模式展示开始使用简单三步集成1. 准备环境确保你的Android项目满足以下要求Android API 14Gradle 4.02. 添加依赖在app模块的build.gradle文件中添加以下依赖dependencies { implementation nl.bryanderidder:themed-toggle-button-group:1.4.1 }对于Java项目还需要添加Kotlin标准库依赖implementation org.jetbrains.kotlin:kotlin-stdlib:1.6.03. 基础布局实现在XML布局文件中添加ThemedToggleButtonGroup和ThemedButtonnl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup android:idid/basicToggleGroup android:layout_widthmatch_parent android:layout_heightwrap_content app:justifyContentcenter nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:layout_widthwrap_content android:layout_height38dp app:toggle_text选项1 / nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:layout_widthwrap_content android:layout_height38dp app:toggle_text选项2 / nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:layout_widthwrap_content android:layout_height38dp app:toggle_text选项3 / /nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup核心功能选择模式详解单选模式默认情况下ThemedToggleButtonGroup使用单选模式一次只能选择一个按钮nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup android:idid/singleSelectGroup android:layout_widthmatch_parent android:layout_heightwrap_content app:toggle_selectableAmount1 !-- 默认值可以省略 -- app:justifyContentcenter !-- 按钮定义 -- /nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup多选模式通过设置toggle_selectableAmount属性可以实现多选功能nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup android:idid/multiSelectGroup android:layout_widthmatch_parent android:layout_heightwrap_content app:toggle_selectableAmount3 !-- 最多选择3个 -- app:toggle_requiredAmount1 !-- 至少选择1个 -- app:flexWrapwrap !-- 按钮定义 -- /nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup图2标签式多选模式最多可选择3个标签代码控制选择在Kotlin中获取和设置选中状态val toggleGroup findViewByIdThemedToggleButtonGroup(R.id.multiSelectGroup) // 获取选中的按钮 val selectedButtons toggleGroup.selectedButtons // 选中特定按钮 toggleGroup.selectButton(btn1) // 带动画选中按钮 toggleGroup.selectButtonWithAnimation(btn2)视觉定制打造独特风格颜色与形状定制通过XML属性可以轻松定制按钮的视觉外观nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:layout_widthwrap_content android:layout_height38dp app:toggle_text自定义按钮 app:toggle_btnCornerRadius19dp !-- 圆角半径 -- app:toggle_backgroundColor#EBEBEB !-- 未选中背景色 -- app:toggle_selectedBackgroundColor#5e6fed !-- 选中背景色 -- app:toggle_textColor#5E5E5E !-- 未选中文字色 -- app:toggle_selectedTextColor#FFFFFF !-- 选中文字色 -- app:toggle_borderWidth2dp !-- 边框宽度 -- app:toggle_borderColor#C6C6C6 !-- 未选中边框色 -- app:toggle_selectedBorderColor#5e6fed !-- 选中边框色 -- app:toggle_textSize15sp !-- 文字大小 -- app:toggle_textPadding14dp / !-- 文字内边距 --图标与文字组合支持同时显示图标和文字并可分别设置选中和未选中状态nl.bryanderidder.themedtogglebuttongroup.ThemedButton android:layout_width70dp android:layout_height70dp app:toggle_btnCornerRadius50dp !-- 圆形按钮 -- app:toggle_icondrawable/ic_mic_off !-- 未选中图标 -- app:toggle_selectedIcondrawable/ic_mic_on !-- 选中图标 -- app:toggle_iconColor#C6C6C6 !-- 未选中图标色 -- app:toggle_text麦克风 !-- 按钮文字 -- app:toggle_iconGravitytop|center !-- 图标位置 -- app:toggle_textGravitybottom|center / !-- 文字位置 --图3带有图标和文字的组合按钮选中状态有明显视觉变化动画效果提升用户体验ThemedToggleButtonGroup提供多种内置选择动画可通过toggle_selectAnimation属性设置nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup android:idid/animatedGroup android:layout_widthmatch_parent android:layout_heightwrap_content app:toggle_selectAnimationcircular_reveal !-- 设置动画类型 -- !-- 按钮定义 -- /nl.bryanderidder.themedtogglebuttongroup.ThemedToggleButtonGroup支持的动画类型包括circular_reveal圆形揭示动画fade淡入淡出动画horizontal_slide水平滑动动画vertical_slide垂直滑动动画horizontal_window水平窗口动画vertical_window垂直窗口动画也可以在代码中动态设置动画val toggleGroup findViewByIdThemedToggleButtonGroup(R.id.animatedGroup) toggleGroup.selectAnimation SelectAnimation.HORIZONTAL_SLIDE高级应用动态添加按钮在实际开发中经常需要根据数据动态生成按钮。以下是如何在Kotlin中实现// 创建按钮组 val dynamicGroup ThemedToggleButtonGroup(context).apply { justifyContent JustifyContent.CENTER toggleSelectableAmount 2 // 最多选择2个 layoutParams ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ) } // 添加到父容器 parentView.addView(dynamicGroup) // 动态添加按钮 val options listOf(选项A, 选项B, 选项C, 选项D) options.forEach { option - val button ThemedButton(context).apply { text option layoutParams ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, 38.dpToPx() // 需要自行实现dp转px方法 ) setPadding(16.dpToPx(), 0, 16.dpToPx(), 0) } dynamicGroup.addView(button) }完整的动态添加按钮示例可参考项目中的demo-programmatically-add-buttons模块。事件监听响应用户交互设置选择监听器以处理用户交互val toggleGroup findViewByIdThemedToggleButtonGroup(R.id.actionGroup) toggleGroup.setOnSelectListener { selectedButton - // 处理选中事件 Toast.makeText(context, 选中: ${selectedButton.text}, Toast.LENGTH_SHORT).show() }获取选择状态的其他方法// 获取所有选中按钮 val selected toggleGroup.selectedButtons // 获取所有按钮 val allButtons toggleGroup.buttons // 获取未选中按钮 val unselected allButtons.filter { !it.isSelected }总结ThemedToggleButtonGroup为Android开发者提供了一个功能丰富、高度可定制的切换按钮解决方案。通过灵活的布局系统、多样的选择模式、精美的动画效果和全面的自定义选项你可以轻松构建出符合应用风格的交互组件。无论是简单的选项切换还是复杂的标签选择ThemedToggleButtonGroup都能满足你的需求。开始使用它来提升你的Android应用的用户界面和交互体验吧要获取完整的源代码和更多示例可以克隆项目仓库git clone https://gitcode.com/gh_mirrors/th/themed-toggle-button-group【免费下载链接】themed-toggle-button-groupCustomisable toggle buttons inside a FlexboxLayout.项目地址: https://gitcode.com/gh_mirrors/th/themed-toggle-button-group创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考