1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chinasoft3_ohos-MultipleStatusView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

MultipleStatueView

Проектное описание

  • Название проекта: MultipleStatueView
  • Серия: адаптация и перенос третьих сторон для OpenHarmony
  • Функционал: пользовательский View, поддерживающий несколько состояний, который позволяет легко переключаться между видами загрузки, ошибками, отсутствием данных, сетевыми проблемами и содержанием (в настоящее время плавающие кнопки не поддерживают установку тени).
  • Состояние переноса проекта: основной функционал завершен
  • Различия при вызове: нет
  • Версия SDK: SDK6, DevEco Studio 2.2 Beta1
  • Базовая версия: Release v1.7

Демонстрация эффекта

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

  1. В файле build.gradle в корневой директории проекта,
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/releases/'
        }
    }
}
  1. В файле build.gradle модуля entry,
dependencies {
    implementation('com.gitee.chinasoft_ohos:MultipleStatueView:1.0.0')
}

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

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

<com.example.multiple_status_view
    ohos:id="$+id:multiple_status_view"
    ohos:width="match_parent"
    ohos:height="match_parent"
    ohos:loadingView="$layout:custom_loading_view"
    ohos:emptyView="$layout:custom_empty_view"
    ohos:errorView="$layout:custom_error_view"
    ohos:noNetworkView="$layout:custom_no_network_view"
    ohos:contentView="$layout:main_content"/>
``````java
MultipleStatusView multipleStatusView = (MultipleStatusView) findViewById(ResourceTable.Id_multiple_status_view);

// Отображение вида загрузки
multipleStatusView.showLoading();
// multipleStatusView.showLoading("Собственные сообщения");
// multipleStatusView.showLoading(ResourceTable.String_custom_hint_content, "Заместители1", "Заместители2", "...");
// multipleStatusView.showLoading(ResourceTable.Layout_xxx, layoutParams);
// multipleStatusView.showLoading(customView, layoutParams); // Отображение пустого вида
multipleStatusView.showEmpty(ResourceTable.Id_empty_retry_view);

// multipleStatusView.showEmpty("Пользовательский текст", ResourceTable.Id_empty_retry_view);
// multipleStatusView.showEmpty(ResourceTable.String_custom_hint_content, ResourceTable.Id_empty_retry_view, "Значок 1", "Значок 2", "...");
// multipleStatusView.showEmpty(ResourceTable.Layout_xxx, layoutParams, ResourceTable.Id_empty_retry_view);
// multipleStatusView.showEmpty(customView, layoutParams, ResourceTable.Id_empty_retry_view); // Отображение ошибочного вида
multipleStatusView.showError(ResourceTable.Id_error_retry_view);
// multipleStatusView.showError("Пользовательский текст", ResourceTable.Id_error_retry_view);
// multipleStatusView.showError(ResourceTable.String_custom_hint_content, ResourceTable.Id_error_retry_view, "Заполнитель 1", "Заполнитель 2", "...");
// multipleStatusView.showError(ResourceTable.Layout_xxx, layoutParams, ResourceTable.Id_error_retry_view);
// multipleStatusView.showError(customView, layoutParams, ResourceTable.Id_error_retry_view);

// Отображение вида без сети
multipleStatusView.showNoNetwork(ResourceTable.Id_no_network_retry_view);
// multipleStatusView.showNoNetwork("Пользовательский текст");
// multipleStatusView.showNoNetwork(ResourceTable.String_custom_hint_content, ResourceTable.Id_no_network_retry_view, "Заполнитель 1", "Заполнитель 2", "...");
// multipleStatusView.showNoNetwork(ResourceTable.Layout_xxx, layoutParams, ResourceTable.Id_no_network_retry_view);
// multipleStatusView.showNoNetwork(customView, layoutParams, ResourceTable.Id_no_network_retry_view);
``````markdown
// Отображение содержимого
multipleStatusView.showContent();
// multipleStatusView.showContent(ResourceTable.Layout_xxx, layoutParams);
// multipleStatusView.showContent(customView, layoutParams);

// Установка слушателя кликов при повторной попытке
multipleStatusView.setOnRetryClickListener(onRetryClickListener);

// Установка слушателя изменения состояния виджета
mMultipleStatusView.setOnViewStatusChangeListener(OnViewStatusChangeListener);

/**
 * Получение текущего состояния view
 *      MultipleStatusView.STATUS_LOADING   // Текущее состояние — загрузка
 *      MultipleStatusView.STATUS_EMPTY     // Текущее состояние — пустое
 *      MultipleStatusView.STATUS_ERROR     // Текущее состояние — ошибка
 *      MultipleStatusView.STATUS_NO_NETWORK // Текущее состояние — нет сети
 *      MultipleStatusView.STATUS_CONTENT    // Текущее состояние — содержимое
 */
int viewStatus = multipleStatusView.getViewStatus();

```xml
<com.example.multiple_status_view
    ohos:id="$+id:multiple_status_view"
    ohos:width="match_parent"
    ohos:height="match_parent"
    ohos:emptyView="$layout:custom_empty_view"
    ohos:errorView="$layout:custom_error_view"
    ohos:loadingView="$layout:custom_loading_view"
    ohos:noNetworkView="$layout:custom_no_network_view">
</com.example.multiple_status_view>
    <Image
        ohos:id="$+id:image"
        ohos:width="60vp"
        ohos:height="60vp"
        ohos:center_in_parent="true"
        ohos:left_margin="24vp"
        ohos:right_margin="16vp"
        ohos:image_src="$media:test"/>

    <Text
        ohos:id="$+id:text1"
        ohos:width="match_content"
        ohos:height="match_content"
        ohos:align_top="@id/image"
        ohos:right_of="@id/image"
        ohos:text="Содержание представления 111111"/>

    <Text
        ohos:width="match_content"
        ohos:height="match_content"
        ohos:align_bottom="@id/image"
        ohos:right_of="@id/image"
        ohos:text="Содержание представления 222222"/>
```</com.example.multiple_status_view>

Примечания

Для корректной работы необходимо установить правильный view id для корневого узла каждого вида следующими правилами, иначе могут возникнуть проблемы с наложением видов.

  1. Если используются пользовательские свойства:
ohos:emptyView="$layout:..."
ohos:errorView="$layout:..."
ohos:loadingView="$layout:..."
ohos:noNetworkView="$layout:..."

необходимо установить:

  • ID для представления "Загрузка" должно быть установлено как: loading_view.
  • ID для пустого представления должно быть установлено как: empty_view.
  • ID для ошибочного представления должно быть установлено как: error_view.
  • ID для представления "Нет сети" должно быть установлено как: no_network_view.
  • ID для пользовательского сообщения должно быть установлено как: status_hint_content.
  1. Если требуется нажатие на определённый view, чтобы выполнить повторную попытку, необходимо установить:
  • ID для кнопки повторной попытки внутри пустого представления: empty_retry_view.
  • ID для кнопки повторной попытки внутри ошибочного представления: error_retry_view.
  • ID для кнопки повторной попытки внутри представления "Нет сети": no_network_retry_view.
  1. При создании пользовательских представлений с помощью ключевого слова new, необходимо установить id:
TextView tv = new TextView(getApplicationContext());
tv.setId(Utils.generateViewId());
tv.setText(text);

Тестовые данные

Код проверен CodeCheck и CloudTest без ошибок.Проверка безопасности отсутствия вирусов прошла успешно.

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

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

1.0.0

Информация о правах и лицензиях

Copyright 2015 classic

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

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

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

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Пользовательский View, поддерживающий различные состояния, позволяет легко переключаться между представлением загрузки, представлением ошибки, представлением пустых данных, представлением сетевых исключений и представлением содержимого. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chinasoft3_ohos-MultipleStatusView.git
git@api.gitlife.ru:oschina-mirror/chinasoft3_ohos-MultipleStatusView.git
oschina-mirror
chinasoft3_ohos-MultipleStatusView
chinasoft3_ohos-MultipleStatusView
master