Добавьте зависимость в файл build.gradle модуля:
// Добавление Maven репозитория
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
// Добавление зависимости
dependencies {
implementation 'com.gitee.chinasoft_ohos:loadinglayout:1.0.0'
}
Проект можно запустить непосредственно в SDK 6 с DevEco Studio 2.2 beta1.
Если проект не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle, создайте новый проект в соответствии со своей версией и скопируйте соответствующие файлы нового проекта в корневую директорию.
Простой и удобный мультистатусный лейаут страницы (content, loading, empty, error).
nInactive()
для совместимости```xml
<ezy.ui.layout.LoadingLayout
ohos:id="$+id:loading"
ohos:height="match_parent"
ohos:width="match_parent"
app:llEmptyText="Нет данных"
app:llTextSize="16fp"
app:llErrorImage="$media:error">
</ezy.ui.layout.LoadingLayout>
```java
@Override
public void onInactive() {
super.onActive();
// Обеспечение совместимости с ошибкой отображения после второго входа
if (mLoadingLayout.getmLayouts() == null) {
return;
} else {
mLoadingLayout.getmLayouts().clear();
}
}
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_other);
mLoadingLayout = (LoadingLayout) findComponentById(ResourceTable.Id_loading);
}
// Вызов публичных методов библиотеки для перестроения содержимого страницы vLoading; при специальных требованиях можно скопировать класс LoadingLayout в проект и самостоятельно изменить стили
Если mLoadingLayout
равен null
, то вернуть управление.
Вызвать метод onFinishInflate()
для mLoadingLayout
.
Установить слушатель повторной попытки для mLoadingLayout
с использованием нового объекта ToastsUtils.Builder
для отображения сообщения "повторная попытка".
Показать содержимое через вызов метода showContent()
для mLoadingLayout
.
// Отображение layout'ов для content/loading/empty/error
showContent()
showLoading()
showEmpty()
showError()
// Установка layout'ов для loading/empty/error
setLoading(int resId)
setEmpty(int resId)
setError(int resId)
// Установка изображения и текста для layout'а empty
setEmptyImage(int resId)
setEmptyText(String value)
// Установка изображения и текста для layout'а error
setErrorImage(int resId)
setErrorText(String value)
``````markdown
// Установка текста для кнопки retry
setRetryText(String value)
// Установка слушателя событий для кнопки retry
setRetryListener(ClickedListener listener)
AttrUtil
<!-- ID ресурса layout'а для пустого состояния "llEmptyResId" -->
mEmptyResId = AttrUtil.getResourceId(attrSet, "llEmptyResId", ResourceTable.Layout__loading_layout_empty);
<!-- ID ресурса layout'а для состояния загрузки "llLoadingResId" -->
mLoadingResId = AttrUtil.getResourceId(attrSet, "llLoadingResId", ResourceTable.Layout__loading_layout_loading);
<!-- ID ресурса layout'а для ошибочного состояния "llErrorResId" -->
mErrorResId = AttrUtil.getResourceId(attrSet, "llErrorResId", ResourceTable.Layout__loading_layout_error);
<!-- Изображение для layout'а пустого состояния "llEmptyImage" -->
mEmptyImage = AttrUtil.getMediaId(attrSet, "llEmptyImage", ResourceTable.Media_empty);
<!-- Текст для layout'а пустого состояния "llEmptyText" -->
mEmptyText = AttrUtil.getStringValue(attrSet, "llEmptyText", "Нет данных");
<!-- Изображение для layout'а ошибочного состояния "llErrorImage" -->
mErrorImage = AttrUtil.getMediaId(attrSet, "llErrorImage", ResourceTable.Media_icon);
<!-- Текст для layout'а ошибочного состояния "llErrorText" -->
mErrorText = AttrUtil.getStringValue(attrSet, "llErrorText", "Отсутствует соединение с интернетом, проверьте вашу сеть...");
<!-- Текст кнопки повторной отправки "llRetryText" -->
mRetryText = AttrUtil.getStringValue(attrSet, "llRetryText", "Загрузка не удалась, нажмите чтобы попробовать снова~");
<!-- Цвет текста "llTextColor" -->
mTextColor = AttrUtil.getColorValue(attrSet, "llTextColor", COLOR);
<!-- Размер текста -->
mTextSize = AttrUtil.getDimension(attrSet, "llTextSize", AttrHelper.vp2px(16, getContext()));
```<!-- Цвет текста кнопки "llButtonTextColor" -->
mButtonTextColor = AttrUtil.getColorValue(attrSet, "llButtonTextColor", COLOR);
<!-- Размер текста кнопки "llButtonTextSize" -->
mButtonTextSize = AttrUtil.getDimension(attrSet, "llButtonTextSize", AttrHelper.vp2px(SIXTEEN, getContext()));
<!-- Фон кнопки "llButtonBackground" -->
mButtonBackground = AttrUtil.getElementValue(attrSet, "llButtonBackground", BACKGROUND);
Код проверен CodeCheck без ошибок
Код проверен CloudTest без ошибок
Прошёл вирусную безопасность
Функционал текущей версии демо совпадает с основным компонентом
Copyright 2016 czy1121
Разрешено согласно Лицензии Apache, версия 2.0 ("Лицензия");
вы можете использовать этот файл только в соответствии с Лицензией.
Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это требует применимого закона или было достигнуто письменно, программное обеспечение,
распределённое в рамках Лицензии, распространяется на условиях "КАК ЕСТЬ",
БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ В КАЧЕСТВЕ, ЯВНО ВЫДАННЫХ ИЛИ ПОДРАЗУМЕВАЮЩИХСЯ.
Просмотрите Лицензию для получения информации о конкретном языке, регулирующем права и ограничения в рамках Лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )