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_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_selectableAmount | 1 | 允许选择的按钮数量 |
toggle_requiredAmount | 1 | 必须选择的按钮数量 |
toggle_horizontalSpacing | 10dp | 按钮之间的水平间距 |
toggle_selectAnimation | CIRCULAR_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_selectedText | toggle_text | 选中时的文本 |
toggle_textSize | 15sp | 文本大小 |
toggle_textAlignment | center | 文本对齐方式 |
toggle_fontFamily | Roboto | 字体文件路径 |
颜色相关属性
| 属性 | 默认值 | 描述 |
|---|---|---|
toggle_backgroundColor | #EBEBEB | 未选中背景色 |
toggle_selectedBackgroundColor | #5E6FED | 选中背景色 |
toggle_textColor | #5E5E5E | 未选中文本颜色 |
toggle_selectedTextColor | #FFFFFF | 选中文本颜色 |
图标相关属性
| 属性 | 默认值 | 描述 |
|---|---|---|
toggle_icon | null | 按钮图标 |
toggle_selectedIcon | toggle_icon | 选中时的图标 |
toggle_iconColor | #5E5E5E | 图标颜色 |
toggle_iconGravity | top|start | 图标位置 |
边框和圆角
| 属性 | 默认值 | 描述 |
|---|---|---|
toggle_btnCornerRadius | 21dp | 按钮圆角半径 |
toggle_circularCornerRadius | false | 是否圆形按钮 |
toggle_borderWidth | 0dp | 边框宽度 |
toggle_selectedBorderWidth | toggle_borderWidth | 选中边框宽度 |
toggle_borderColor | #5E5E5E | 边框颜色 |
toggle_selectedBorderColor | toggle_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在以下场景中特别有用:
- 时间选择器- 选择会议时间、预约时间
- 标签选择器- 文章标签、产品分类
- 设置选项- 应用设置、偏好设置
- 筛选器- 商品筛选、内容过滤
- 多步骤表单- 向导步骤、问卷选项
🛠️ 最佳实践建议
- 保持一致性- 在整个应用中使用相同的按钮样式
- 合理间距- 使用
toggle_horizontalSpacing确保按钮间距合适 - 动画选择- 根据应用风格选择合适的动画效果
- 颜色搭配- 使用对比色区分选中和未选中状态
- 响应式设计- 利用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),仅供参考
