# DynamicGrid
**Repository Path**: chinasoft2_ohos/DynamicGrid
## Basic Information
- **Project Name**: DynamicGrid
- **Description**: 图标拖拽排序组件
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2021-05-18
- **Last Updated**: 2022-09-06
## Categories & Tags
**Categories**: harmonyos-advanced
**Tags**: None
## README
# DynamicGrid
#### 项目介绍
- 项目名称:DynamicGrid
- 所属系列:openharmony的第三方组件适配移植
- 功能:图标拖拽排序组件
- 项目移植状态:主功能完成
- 调用差异:有(取消方法 `startEditMode` ,新增 `setColumn` 和 `setData`取消方法 `setOnDropListener`,新增 `onKeyUp`)
- 开发版本:sdk6,DevEco Studio2.2 beta1
- 基线版本:基于master分支
#### 效果演示

#### 安装教程
1.在项目根目录下的build.gradle文件中,
```groovy
// 添加maven仓库
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/release/'
}
}
```
2.在entry模块的build.gradle文件中,
```groovy
// 添加依赖库
dependencies {
implementation 'com.gitee.chinasoft_ohos:DynamicGrid:1.0.0'
}
```
在sdk6,DevEco Studio2.2 beta1下项目可直接运行
如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件,
并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
#### 使用说明
添加布局
``` xml
```
创建对象并设置参数
**相关方法:**
* **setColumn** 设置每行的列数
* **setData** 绑定数据
```java
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
gridView = (DragGridView) findComponentById(ResourceTable.Id_my_gridView);
List upperItemList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
/**
* GridItemInfo 参数
* itemText 文字
* iconId 图片ID
* textSize 字体大小
*/
upperItemList.add(new GridItemInfo(sCheeseStrings[i],org.askerov.dynamicgrid.ResourceTable.Media_icon,25));
}
//设置列数
gridView.setColumn(5);
//设置数据
gridView.setData(upperItemList);
}
public static final String[] sCheeseStrings = {
"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
"Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese"};
```
使用onKeyUp来监听返回键退出拖拽动画
```java
@Override
public boolean onKeyUp(int keyCode, KeyEvent keyEvent) {
switch (keyEvent.getKeyCode()) {
case KeyEvent.KEY_BACK:
if (!gridView.isBack()) {
gridView.resetAnimation();
gridView.setBack(true);
return true;
}
}
return false;
}
```
#### 测试信息
CodeCheck代码测试无异常
CloudTest代码测试无异常
病毒安全检测通过
当前版本demo功能与原组件基本无差异
#### 版本迭代
- 1.0.0