Добрый день!
1) У меня есть группа одинаковых фрагментов, которые отличаются только выводимой картинкой и надписью и вызываются в разных местах приложения так:
Screens.ProfileOne
Screens.ProfileTwo
Я В object Screens они выглядят так:
object Screens {
object ProfileOne : SupportAppScreen() {
override fun getFragment() = ProfileFragment(0)
}
object ProfileTwo : SupportAppScreen() {
override fun getFragment() = ProfileFragment(1)
}
}
Класс из которого во фрагменте на основании index берутся позиции в скобках (0 и 1):
enum class Items (@StringRes val title: Int, @DrawableRes val icon: Int) {
One(R.string.one_profile, R.drawable.ic_profile_0),
Two(R.string.two_profile, R.drawable.ic_profile_1),
Как сократить object Screens до 1 объекта? Потому что у меня их не 2, а 9 и это ужасно выглядит.
2) Я пробовал data class, но в итоге из-за того, что ScreenKey одинаковый, первый раз он работает, а второй раз выводит тот же самый экран. Т.е. объект не пересоздается. Выглядел код так:
object Screens {
data class Profilу (val index: Int) : SupportAppScreen() {
override fun getFragment() = ProfileFragment(index)
}
Вопрос: Как можно сократить object Screens? Или что поправить в моем варианте с непересоздающимися объектами? Буду очень благодарен за любые наводки.