Таким образом, способ создания моего приложения - у меня есть MapsActivity
, который загружается при запуске приложения, и у меня есть нижний виджет навигации, который имеет 3 значка, и он выбран по умолчанию на первом значке (который у меня есть названная карта). две другие иконки при выборе являются фрагментами.
Я пытаюсь закрыть фрагмент, когда нажимаю на значок карты в виджете навигации, поскольку это по сути моя основная деятельность.
теперь я застрял и не могу вернуться к своему MapsActivity
, потому что я не знаю, как закрыть фрагмент
MapsActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
val bottomNavigation: BottomNavigationView = findViewById(R.id.bottom_navigation)
bottomNavigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
getAutoCompleteSearchResults()
}
...
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener {item->
when(item.itemId){
R.id.nav_map -> {
Log.d(TAG, "map pressed")
// if there's a fragment, close it
return@OnNavigationItemSelectedListener true
}
R.id.nav_A -> {
Log.d(TAG, "Fragment A pressed")
replaceFragment(FragmentA())
return@OnNavigationItemSelectedListener true
}
R.id.nav_B -> {
Log.d(TAG, "Fragment B pressed")
replaceFragment(FragmentB())
return@OnNavigationItemSelectedListener true
}
}
false
}
...
private fun replaceFragment(fragment: Fragment){
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.fragmentContainer, fragment)
fragmentTransaction.commit()
}