Это работало отлично, я не знаю, где я испортил ...
У меня есть 5 пунктов в моем нижнем меню навигации, и оно всегда помечено / установлено / выделено / выбрано на домашнем задании (0) всякий раз, когда я нажимаю, скажем, ProfileActivity (4), он устанавливает его как выбранный всего на секунду, а затем выбор возвращается к домашнему заданию (0), но экран остается на задании, которое я хотел.
Вот нижняя навигация:
AppBottomNavigation.kt
class AppBottomNavigation(private val bnv: BottomNavigationViewEx,
private val navNumber: Int,
activity: Activity): LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
bnv.menu.getItem(navNumber).isChecked = true
}
init {
bnv.setIconSize(29f, 29f)
bnv.setTextVisibility(false)
bnv.enableItemShiftingMode(false)
bnv.enableShiftingMode(false)
bnv.enableAnimation(false)
for (i in 0 until bnv.menu.size()) {
bnv.setIconTintList(i, null)
}
bnv.setOnNavigationItemSelectedListener {
val nextActivity =
when (it.itemId) {
R.id.nav_item_home -> MainActivity::class.java
R.id.nav_item_search -> SearchActivity::class.java
R.id.nav_item_share -> ShareActivity::class.java
R.id.nav_item_likes -> LikesActivity::class.java
R.id.nav_item_profile -> ProfileActivity::class.java
else -> {
Log.e(BaseActivity.TAG, "unknown nav item clicked $it")
null
}
}
if (nextActivity != null) {
val intent = Intent(activity, nextActivity)
intent.flags = Intent.FLAG_ACTIVITY_NO_ANIMATION
activity.startActivity(intent)
activity.overridePendingTransition(0, 0)
true
} else {
false
}
}
}
}
fun BaseActivity.setupBottomNavigation(navNumber: Int){
AppBottomNavigation(bottom_navigation_view, navNumber,this)
}
Вот MainActivity.kt просто как пример того, как я назвал нижнюю навигацию в действиях:
class MainActivity : BaseActivity(), FeedAdapter.Listener {
private lateinit var mAdapter: FeedAdapter
private val TAG = "MainActivity"
private lateinit var mFirebase: FirebaseHelper
private var mLikesListeners: Map<String, ValueEventListener> = emptyMap()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
Log.d(TAG, "onCreate")
setupBottomNavigation(0)