Передача справки о деятельности приводит к возможным сбоям. Существует лучший способ. Вы можете создать DrawerActivity
, расширяющий AppCompatActivity
, и поместить в него большую часть этой логики. Затем, когда у вас есть активность, которая использует ящик, вы просто расширяете DrawerActivity
вместо AppCompatActivity
.
Создайте несколько абстрактных функций, таких как
abstract fun getDrawerLayout(): DrawerLayout
abstract fun getNavView(): NavView
, которые вы будете реализовывать в методах, которыепродлевает ваш DrawerActivity
. Таким образом, у вас будет в наличии все, что вам нужно DrawerActivity
для подключения логики для ящика.
Ваша функция
fun makeDrawer() {
drawerLayout.openDrawer(Gravity.RIGHT)
nav_view.setNavigationItemSelectedListener(this)
}
теперь будет
fun makeDrawer() {
getDrawer().openDrawer(Gravity.RIGHT)
getNavView().setNavigationItemSelectedListener(this)
}
Другие части класса вы также можете заменить.