# Асимметричная сетка (AsymmetricGridView)


## Проект

- **Название проекта:** AsymmetricGridView
- **Серия:** адаптация и портирование третьих сторон для openHarmony
- **Функционал:** асимметричная сетка отображения
- **Статус портирования:** основные функции завершены
- **Различия при вызове:** нет
- **Версия SDK:** sdk6
- **Инструмент разработки:** DevEco Studio 2.2 beta1
- **Базовая версия:** ветка master

### Демонстрация эффекта
![image1](img/shots.gif)

### Инструкция по установке

1. В файле build.gradle в корневой директории проекта добавьте:
   ```gradle
   allprojects {
       repositories {
           maven {
               url 'https://s01.oss.sonatype.org/content/repositories/releases/'
           }
       }
   }
   ```

2. В файле build.gradle модуля entry добавьте:
   ```gradle
   dependencies {
       implementation('com.gitee.chinasoft_ohos:AsymmetricGridview:1.0.0')
       ......  
   }
   ```

Проект можно запустить сразу после установки в SDK 6 с использованием DevEco Studio 2.2 beta1. Если проект не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle, создайте новый проект в соответствии со своей версией и скопируйте соответствующие файлы нового проекта в корневую директорию.

### Инструкция по использованию

В вашем файле layout xml:

```xml
<com.felipecsl.lib.AsymmetricRecyclerView
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:id="$+id:recyclerView"
    ohos:height="match_parent"
    ohos:width="match_parent"/>
```

В вашем классе активности:```java
@Override
public void onStart(Intent intent) {
    super.onStart(intent);
    super.setUIContent(ResourceTable.Layout_ability_main);
    AsymmetricRecyclerView recyclerView = (AsymmetricRecyclerView) findComponentById(ResourceTable.Id_recyclerView);
    RecyclerViewAdapter adapter = new RecyclerViewAdapter(demoUtils.moarItems(50));
    recyclerView.setRequestedColumnCount(3);
    recyclerView.setDebugging(true);
    recyclerView.setRequestedHorizontalSpacing(Utils.vpToPx(this, 3));
    recyclerView.setItemProvider(new AsymmetricRecyclerViewAdapter<>(this, recyclerView, adapter));
}
```Каждый раз, когда адаптер меняется (добавление или удаление элементов), сетка автоматически отражает эти изменения, подписываясь на изменения адаптера.

Переключитесь для включения/отключения переупорядочивания элементов для лучшей заполненности сетки:

```java
// Установка значения true перемещает элементы вверх и вниз для лучшего использования пространства
// По умолчанию значение false.
listView.setAllowReordering(true);
listView.isAllowReordering(); // true
```

#### Тестовая информация

Код проверка `CodeCheck` прошла успешно  
```
Облачная проверка `CloudTest` прошла успешно  

Проверка безопасности от вирусов пройдена  

Функционал демонстрационной версии текущего выпуска практически не отличается от оригинального компонента  


#### Версионирование

- 1.0.0

#### Информация о правах и лицензиях    Лицензия MIT (MIT)

    Авторское право © 2011-2014 Felipe Lima

    Разрешено бесплатно использовать любому лицу, получившему копию
    данного программного обеспечения и связанных с ним документов ("Программное обеспечение"),
    чтобы продавать, модифицировать, объединять, публиковать, распространять, предоставлять
    сублицензии и/или продавать копии Программного обеспечения, а также позволить другим лицам,
    которым это Программное обеспечение было предоставлено, делать то же самое, при условии,
    что будут выполнены следующие условия:

    Вышеуказанное авторское право и данное разрешение должны быть включены во все копии
    или значительные части Программного обеспечения.

    ПРЕДМЕТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ,
    ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАННЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОРГОВЛЕНИЯ,
    ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ И ДОЛЖНИКИ
    АВТОРСКОГО ПРАВА НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЖАЛОБЫ, УЩЕРБ ИЛИ ЛЮБУЮ ДРУГУЮ ОТВЕТСТВЕННОСТЬ,
    В ТОМ ЧИСЛЕ В СВЯЗИ С ДЕЛОМ ОБ ОБСЛУЖИВАНИИ, ТОРГОВЛЕ ИЛИ ИНЫХ ДЕЙСТВИЯХ, ПОДТЯЖЕННЫХ
    ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.