Pull to refresh

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 с двумя иконками, правда без обработчиков их нажатия.
Если в примере из статьи взять аналогичные куски, то останется тоже немного:
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>


И я подозреваю, меню тоже можно из кода создать.
Так тут вышло не сильно больше:
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 только на уровне layout.
А все остальные ресурсы используются как обычно.
Разве Anko не используется для замещения использования XML для разметки интерфейса?
Sign up to leave a comment.

Articles