Fixed – main sections decorated according to other modules template
This commit is contained in:
parent
bd8a642c72
commit
c4c07ee8a0
|
|
@ -1,14 +1,17 @@
|
|||
tabbar-navigation
|
||||
===
|
||||
|
||||
Модуль, упрощающий добавление таббара с обособленной навигацией в каждой табе. Данный модуль базируется на классах модуля `navigation` – `NavigationActivity`, `ViewControllerNavigation`, `ViewController`.
|
||||
Модуль, упрощающий добавление таббара с обособленной навигацией в каждой табе. Данный модуль базируется на классах модуля [navigation](https://github.com/TouchInstinct/RoboSwag/tree/master/navigation) – `NavigationActivity`, `ViewControllerNavigation`, `ViewController`.
|
||||
|
||||
### Подключение
|
||||
### Основные интерфейсы и классы
|
||||
|
||||
```gradle
|
||||
implementation project(':tabbar-navigation')
|
||||
```
|
||||
### Последовательность необходимых действий с основными классами для организации навигации:
|
||||
`BottomNavigationActivity` – абстрактный класс, наследуемый от класса `NavigationActivity` и содержащий в себе 2 объекта:
|
||||
* `navigation` – объект, используемый для навигации на уровне `Activity`. При работе с навигацией используя этот объект таббар скрывается на открываемом экране, и переключиться на какую-нибудь другую табу нельзя.
|
||||
* `innerNavigation` – объект, используемый для навигации вннутри табы. При работе с навигацией используя этот объект таббар остается видимым на открываемом экране, таким образом сохраняя возможность переключаться по остальным табам таббара.
|
||||
|
||||
`BottomNavigationFragment` – абстраткный класс, наследуемый от `Fragment` и содержащий в себе логику по настройке навигации используя вложенный объект `BottomNavigationController`.
|
||||
|
||||
#### Последовательность необходимых действий с основными классами для организации навигации:
|
||||
|
||||
1. Отнаследовать главную `Activity` приложения от `BottomNavigationActivity` и переопределить следующие поля:
|
||||
|
||||
|
|
@ -25,12 +28,12 @@ implementation project(':tabbar-navigation')
|
|||
|
||||
***Количество кнопок в таббаре может быть произвольным***
|
||||
|
||||
### Интерфейс для работы с таббаром
|
||||
#### Дополнительно
|
||||
1. В классе ```BottomNavigationFragment``` можно также переопределить поле ```val reselectListener: (() -> Unit)```, отвечающее за повторное нажатие на уже открытую табу. По умолчанию происходит переход к низу стека фрагментов открытой табы – ```getNavigationActivity().innerNavigation.up()```
|
||||
|
||||
Для навигации используются объекты-наследники класса `ViewControllerNavigation`
|
||||
2. Объекты ```innerNavigation``` в классе ```BottomNavigationActivity``` и ```navigation``` в классе ```NavigationActivity``` помечены как ```open```, давая тем самым возможность добавить кастомную логику переопределив их.
|
||||
|
||||
1. Для навигации внутри табы необходимо использовать объект ```activity.innerNavigation```. При использовании этого метода таббар остается видимым на открываемом экране, таким образом сохраняя возможность переключаться по остальным табам таббара.
|
||||
2. Для навигации на уровне ```Activity``` необходимо использовать объект ```activity.navigation```. При использовании этого метода таббар скрывается на открываемом экране, и переключиться на какую-нибудь другую табу нельзя.
|
||||
3. В случае, если открыта любая таба кроме главной (```topLevelViewControllerId```) со значением ```backStackEntryCount = 0```, нажатие на системную кнопку "Назад" предварительно откроет главную табу, прежде чем отработает действие кнопки по умолчанию.
|
||||
|
||||
### Примеры
|
||||
|
||||
|
|
@ -114,11 +117,16 @@ class MainViewController(
|
|||
}
|
||||
```
|
||||
|
||||
### Дополнительно
|
||||
### Зависимости
|
||||
|
||||
1. В классе ```BottomNavigationFragment``` можно также переопределить поле ```val reselectListener: (() -> Unit)```, отвечающее за повторное нажатие на уже открытую табу. По умолчанию происходит переход к низу стека фрагментов открытой табы – ```getNavigationActivity().innerNavigation.up()```
|
||||
Поскольку модуль базируется на классах модуля [navigation](https://github.com/TouchInstinct/RoboSwag/tree/master/navigation), то необходимо подключить его.
|
||||
|
||||
2. Объекты ```innerNavigation``` в классе ```BottomNavigationActivity``` и ```navigation``` в классе ```NavigationActivity``` помечены как ```open```, давая тем самым возможность добавить кастомную логику переопределив их.
|
||||
```gradle
|
||||
implementation project(':navigation')
|
||||
```
|
||||
|
||||
3. В случае, если открыта любая таба кроме главной (```topLevelViewControllerId```) со значением ```backStackEntryCount = 0```, нажатие на системную кнопку "Назад" предварительно откроет главную табу, прежде чем отработает действие кнопки по умолчанию.
|
||||
### Подключение
|
||||
|
||||
```gradle
|
||||
implementation project(':tabbar-navigation')
|
||||
```
|
||||
|
|
|
|||
Loading…
Reference in New Issue