В моей деятельности у меня есть вид снизу навигации с 5 пунктами. При каждом щелчке элемента в нижнем навигационном представлении я загружаю фрагмент. Предположим, я нахожусь на 3-м элементе и меняю ориентацию, затем действие было воссоздано, и оно показало 1-й элемент как выбранный. Этого я избежал, введя в своей деятельности следующий код:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.clear()
outState.putInt("tabSelected", bottomNav.selectedItemId)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
bottomNav.selectedItemId = savedInstanceState.getInt("tabSelected")
}
Приведя приведенный выше код, мне удалось показать 3-й элемент как выбранный. Но проблема здесь заключается в том, что фрагмент воссоздается, и в этом фрагменте значение saveInstanceState всегда равно нулю. Я дал
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
retainInstance = true
}
в моем фрагменте.
Как я могу сохранить все содержимое моего фрагмента в этом случае?
ОБНОВЛЕНИЕ: я не вижу фрагментов в моем supportFragmentManager
, хотя я дал retainInstance = true