ELKContainerView
View-контейнер для [ELKContainer](composable функции), основанный на [FrameLayout].
Контейнер автоматически:
- Загружает данные при состояниях
View.VISIBLEилиView.INVISIBLE - Приостанавливает загрузку при
View.GONE - Перезагружается при изменении параметров через методы
setContainerName()илиsetContainerVersion()
Параметры XML
| Параметр | Тип | Описание | По умолчанию |
|---|---|---|---|
app:containerName | String | Название контейнера. Если не требуется конкретный контейнер, оставьте null | null |
app:containerVersion | Integer | Версия контейнера. Для первой версии оставьте null | null |
app:horizontalPadding | Dimension | Горизонтальный отступ | 16dp |
app:elkMinimalLoaderContainerHeight | Dimension | Минимальная высота контейнера лоудера | 100dp |
<sid.sdk.elk.presentation.container.ELKContainerView
android:id="@+id/elk_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:containerName="offer"
app:containerVersion="2" />
Формирование URL загрузки
Контейнер формирует URL для загрузки данных следующим образом:
https://адрес.ру/[clientID]_[containerName]_v[containerVersion].json
Параметры URL
| Параметр | Обязательность | Описание |
|---|---|---|
clientID | Обязателен | Задается через SID.Settings.setMainSettings(clientID = "...") |
containerName | Опционально | Если null, игнорируется в URL |
containerVersion | Опционально | Если null, игнорируется в URL |
Примеры URL
- Без специфичного контейнера:
https://адрес.ру/client123.json - С контейнером и версией:
https://адрес.ру/client123_offer_v2.json
Методы
setContainerName
public final fun setContainerName(name: String): Unit
Устанавливает название контейнера. Если не требуется конкретный контейнер, метод не используется.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| name | Да | String | Название контейнера |
setContainerVersion
public final fun setContainerVersion(version: Integer): Unit
Устанавливает версию контейнера. Если используется первая версия, метод не требуется.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| version | Да | Integer | Версия контейнера |
setDimensions
public final fun setDimensions(dimensions: SIDDimensionsELK): Unit
Задает размеры внутри контейнера.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| dimensions | Да | SIDDimensionsELK | Размеры внутри контейнера |
setMinimalLoaderHeights
public final fun setMinimalLoaderHeights(height: Integer): Unit
Задает минимальную высоту контейнера лоудера для статики.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| height | Да | Integer | Высота в dp |
subscribeOnContainerEvents
public final fun subscribeOnContainerEvents(containerEvents: (ELKEvents) → Unit): Unit
Подписывается на события контейнера. Пример использования:
elkContainer.subscribeOnContainerEvents { event ->
when(event) {
is ELKEvents.ClickELK -> handleWidgetClick(event)
is ELKEvents.WidgetErrorELK -> showErrorMessage(event)
}
}
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| containerEvents | Да | Function1<ELKEvents, Unit> | Функция обработки событий ЕЛК |