программист, пишет под андроид уже много лет. В моем нынешнем приложении (SingleFragmentActivity) переход между фрагментами реализован при помощи SupportFragmentManager, т.е. грубо говоря по нажатию на кнопку, я делаю реплейс фрагментов в контейнере активити. Он говорит, что это неправильно и что это - ошибка проектирования. Что лучше сделать методы в хост активити, которые будут реализовывать этот самый переход между фрагментами. Т.е. мне нужно будет вместо вызова сапорт фрагмент менеджера делать вызов такого метода из активити. ИМХО - какая-то дичь. А вы как посоветуете делать?
активитя в роутере мне пригодилась 3 раза: 1. activity#onBackPressed 2. activity#startActivity(intent) 3. activity.isDestroyed - return в остальном она нахуй не нужна, и переходы все через fragment manager
Погоди не понятно чем ваши подходы отличаются. У друга твоего все разруливает активити ок. А у тебя где это все происходит? Ты написал что у него в активити а у тебя с помощью врагмент менеджера, а у него не через фрагмент менеджер что ли ?
В книге "Android. Программирование для профессионалов" советуют делать такой абстрактный класс: abstract class SingleFragmentActivity : AppCompatActivity() { protected abstract fun createFragment(): Fragment override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_fragment) val fragmentManager = supportFragmentManager var fragment = supportFragmentManager.findFragmentById(R.id.fragment_container) if (fragment == null) { fragment = createFragment() fragmentManager.beginTransaction() .add(R.id.fragment_container, fragment) .commit() } } }
Это не дичь. Это называется чистый код. Зачем тебе в 100 фрагментах писать одно и тоже, когда ты можешь создать для себя методы. В данном случае replaceFragment и вызывать его.
Вообще всё равно.
Обсуждают сегодня