Я читал, что наибольшее преимущество использования Anko - его повторное использование. Но я не мог найти его точный пример.Возможно ли повторное использование макета в Kotlin Anko
В настоящее время в новой системе Android макета, котел пластины, как показано ниже:
DrawerLayout (with some setup)
CoordinatorLayout (with some setup)
AppBarLayout (with some setup)
ToolBar
<The Main Content>
NavigationView (with header inflated)
Из структуры макета выше, только <The Main Content>
является varry. И во многих случаях эти церемониальные установки дублировались почти в каждом действии.
Итак, здесь, когда Anko im думает, есть ли многоразовое решение по этой проблеме. Я не ожидаю, что он будет повторно использоваться для общего назначения, но, по крайней мере, я могу свести к минимуму церемониальный код в проекте. Может быть, мне нужно что-то вроде:
class MainUI: AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>): View{
return with(ui) {
myCustomRootLayout {
//here is what <The Main Content> will be
}
}
}
}
Из кода выше им ожидающих myCustomRootLayout
будет делать все церемониальные установки для корневого макета, таких как (DrawerLayout, CoordinatorLayout и т.д. и т.п.).
Возможно ли это?
EDIT Так я думаю, что мой вопрос: Как сделать пользовательский компонент, который может разместить у себя другие компоненты
спасибо, что ответили.да, я понимаю об этом. но можно найти пример того, как создать пользовательский компонент, который является контейнером другого компонента. См. Мой код, 'myCustomRootLayout' должен содержать' DrawerLayout, CoordinatorLayout, AppBarLayout' и т. Д. И т. Д., Но также должен содержать другой компонент ''. Поэтому в будущем я могу использовать их как: 'myCustomRootLayout {recyclerView()}' (добавление в него ресайклеров) –
ktutnik
@ktutnik как метод расширения myCustomRootLayout, так и класс 'MyCustomRootLayout' принимают делегат, который вызывается после настройки элементы элементов. Этот делегат может быть использован для добавления пользовательских дочерних элементов, то есть 'recyclerView()' – miensol
. Соблюдайте позицию вставленного ребенка. Требуются ли какие-либо усилия для того, чтобы дети были детьми как координаторов-координаторов по отношению к корневому представлению? – ktutnik