Comments 5
Что-то кода кажется прям много, на мой непросвященный взгляд, тот же bottomNavigationBar во Flutter'e выглядит так:
bottomNavigationBar: new BottomNavigationBar(items: [
new BottomNavigationBarItem(
icon: new Icon(Icons.home),
title: new Text(«Home»),
),
new BottomNavigationBarItem(
icon: new Icon(Icons.search),
title: new Text(«Search»),
)
])
это bottomNavigationBar с двумя иконками, правда без обработчиков их нажатия.
bottomNavigationBar: new BottomNavigationBar(items: [
new BottomNavigationBarItem(
icon: new Icon(Icons.home),
title: new Text(«Home»),
),
new BottomNavigationBarItem(
icon: new Icon(Icons.search),
title: new Text(«Search»),
)
])
это bottomNavigationBar с двумя иконками, правда без обработчиков их нажатия.
Если в примере из статьи взять аналогичные куски, то останется тоже немного:
И я подозреваю, меню тоже можно из кода создать.
Code
val bottomNavigation = bottomNavigation {
id = R.id.bottom_nav_view
inflateMenu(R.menu.bottom_navigation_menu)
}
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@id/homeFragment"
android:icon="@drawable/ic_home"
android:title="@string/menu_title_home"/>
<item
android:id="@id/usersFragment"
android:icon="@drawable/ic_users"
android:title="@string/menu_title_users"/>
<item
android:id="@id/detailsFragment"
android:icon="@drawable/ic_info"
android:title="@string/menu_title_details"/>
<item
android:id="@id/moreFragment"
android:icon="@drawable/ic_more"
android:title="@string/menu_title_more"/>
</menu>
И я подозреваю, меню тоже можно из кода создать.
Так тут вышло не сильно больше:
Это код без обработки. При этом мне кажется, что можно было и вместе это сделать, и было бы красивее (поправьте, если не так). И так как пока в anko нет поддержки, то пришлось накостылить такое:
Все остальное, как я понял, это настройка переходов через граф и подгрузка ресурсов из xml, что пришлось бы делать и при классическом подходе.
bottomNavigation {
val bottomNavigation = bottomNavigation {
id = R.id.bottom_nav_view
inflateMenu(R.menu.bottom_navigation_menu)
}
connect(
START to START of PARENT_ID,
END to END of PARENT_ID,
TOP to BOTTOM of R.id.fragment_container,
BOTTOM to BOTTOM of PARENT_ID
)
}
Это код без обработки. При этом мне кажется, что можно было и вместе это сделать, и было бы красивее (поправьте, если не так). И так как пока в anko нет поддержки, то пришлось накостылить такое:
inline fun ViewManager.bottomNavigation(init: BottomNavigationView.() -> Unit = {}) = ankoView({ BottomNavigationView(it) }, theme = 0, init = init)
Все остальное, как я понял, это настройка переходов через граф и подгрузка ресурсов из xml, что пришлось бы делать и при классическом подходе.
Разве Anko не используется для замещения использования XML для разметки интерфейса?
Sign up to leave a comment.
Создание Bottom Navigation Bar на Kotlin с использованием Anko