Toggle && ToggleGroup

本文介绍了Unity中Toggle组件的基本使用方法及其属性设置,包括不同状态下的颜色调整,并讲解了如何通过ToggleGroup组件实现单选功能。

在层级视图中鼠标右键选择 UI -> Toggle 创建
这里写图片描述


Toggle的大部分属性和Button是一样的。
Target Graphic : 图片背景
Normal Color : 常规状态
Highlighted Color : 鼠标移上的状态
Pressed Color : 点击后的状态
Disabled Color : 失效后的状态

这里写图片描述

Toggle控件常用来做选择的按钮。
##ToggleGroup
创建一个空物体,添加一个ToggleGroup组件,将设置好的几个Toggle拖到ToggleGroup中就可以实现单选的操作了
这里写图片描述
ToggleGroup组件:
这里写图片描述

显示效果:
这里写图片描述

当运行后我们点击A勾选B就会是不是勾选状态;勾选B A就不会勾选。

### 使用 Toggle Group 实现分组切换功能 在前端开发中,`toggle group` 是一种常见的交互模式,允许用户在一个选项集合内进行单选或多选操作。以下是基于 Vue 和 Angular 这两个流行的前端框架展示 `toggle group` 功能的具体实现方式。 #### 在 Vue 中使用 Toggle Group Vue 组件可以利用其声明式的渲染机制轻松创建具有状态管理特性的 UI 控件。对于 `toggle group` 来说,可以通过 v-model 指令绑定输入控件的状态到组件的数据属性上[^1]。 ```vue <template> <div id="app"> <!-- 定义一个按钮组 --> <div class="btn-group" role="group" aria-label="..."> <button type="button" :class="{ active: selected === 'one' }" @click="select('one')">One</button> <button type="button" :class="{ active: selected === 'two' }" @click="select('two')">Two</button> <button type="button" :class="{ active: selected === 'three' }" @click="select('three')">Three</button> </div> <p>Selected option is {{selected}}</p> </div> </template> <script> export default { data() { return { selected: null }; }, methods: { select(option) { this.selected = (this.selected !== option ? option : null); } } }; </script> ``` 此代码片段展示了如何构建一组互斥的选择项,并通过点击事件更新当前选定的项目。当某个按钮被激活时会改变样式以显示已选中的效果;同时页面下方也会动态反映最新的选择结果。 #### 在 Angular 中使用 Toggle Group Angular 提供了强大的双向数据绑定能力以及丰富的表单处理工具集,这使得实现类似的 `toggle group` 变得更加直观简单。下面是一个简单的例子说明怎样用 Angular 构建相同的功能: ```html <div ng-app="myApp" ng-controller="MainCtrl as ctrl"> <!-- 创建带有 radio button 的 form control 集合 --> <label *ngFor="let item of items; let i=index;"> <input type="radio" name="optionsRadios" [(ngModel)]="ctrl.selection" [value]="item.value">{{item.label}} </label><br/> <span>You have chosen:</span>{{ctrl.selection}} </div> ``` ```typescript // app.module.ts 文件内的部分配置... import { FormsModule } from '@angular/forms'; @NgModule({ imports: [ BrowserModule, FormsModule, // 导入 FormsModule 支持双绑 ], }) export class AppModule {} // main.component.ts ... @Component({ selector: 'main', templateUrl: './main.component.html' }) export class MainComponent { public selection:string; private readonly items:Array<{ label:string, value:string }> = [ { label:'Option One', value:'option-one'}, { label:'Option Two', value:'option-two'}, { label:'Option Three', value:'option-three'} ]; } ``` 上述实例中,通过引入 `FormsModule` 并应用 `[()]` 符号实现了双向绑定的效果,从而简化了视图层与模型之间的同步过程。每当用户选择了不同的选项卡之后,界面上的文字描述就会即时反映出最新变化的情况[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值