# SHSegmentControl **Repository Path**: chinasoft_ohos/SHSegmentControl ## Basic Information - **Project Name**: SHSegmentControl - **Description**: 分段器自定义UI组件 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2021-04-12 - **Last Updated**: 2024-05-29 ## Categories & Tags **Categories**: harmonyos-menu **Tags**: None ## README # SHSegmentControl #### 项目介绍 - 项目名称:SHSegmentControl - 所属系列:openharmony 第三方组件适配移植 - 功能:分段器自定义组件 - 项目移植状态:主功能完成 - 调用差异:有 * 方法 `setSelectedTextColors` 和 `setColors`:参数 `ColorStateList` 改为 `StateElement` * 方法 `setTextSize`: 第一个参数从 int 改为 `Text.TextSizeType sizeType` - 开发版本:sdk5,DevEco Studio2.1 Release - 基线版本:Release 1.17 #### 效果演示 ![art1](https://gitee.com/chinasoft_ohos/SHSegmentControl/raw/master/arts/arts1.gif) #### 安装教程 在moudle级别下的build.gradle文件中添加依赖,在dependencies标签中增加对libs目录下jar包的引用。 ```groovy // 添加maven仓库 repositories { maven { url 'https://s01.oss.sonatype.org/content/repositories/releases/' } } // 添加依赖库 dependencies { implementation 'com.gitee.chinasoft_ohos:SHSegmentControl:1.0.0' } ``` 在 sdk5,DevEco Studio2.1 Release 下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 #### 使用说明 **相关属性:** * **selectedColor** 设置选中后的颜色 * **normalColor** 设置未选中的颜色 * **textColors** 设置文字内容的颜色,可以使用ColorStateList来设置选中和未选中的颜色,这个属性设置以后,之前设置的selectedColor和normalColor对文字内容失去作用 * **backgroundColors** 设置边框、选中的背景和分割线的颜色,可以使用ColorStateList来同事设置选中和未选中的颜色,和textColors一样,设置这个属性后,selectedColor和normalColor会对边框和背景失去作用 * **cornerRadius** 设置背景的圆角半径 * **boundWidth** 设置边框的粗细 * **separatorWidth** 设置分割线的粗细 * **texts** 设置文字内容,通过'|'分隔开 * **verticalGap** 纵向上的边距 * **horizonGap** 横向的边距 ``` xml ``` 使用OnSegmentControlClickListener来监听选中的变换 ```java mSegmentHorzontal = (SegmentControl) findViewById(ResourceTable.Id_segment_control); mSegmentHorzontal.setOnSegmentControlClickListener(new SegmentControl.OnSegmentControlClickListener() { @Override public void onSegmentControlClick(int index) { Log.i(TAG, "onSegmentControlClick: index = " + index); } }); ``` #### 测试信息 CodeCheck代码测试无异常 CloudTest代码测试无异常 火绒安全病毒安全检测通过 当前版本demo功能与原组件基本无差异 #### 版本迭代 - 1.0.0