Android: TabLayout не устанавливает выбранную вкладку - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь сохранить выбор вкладки при перезапуске процесса, но не могу заставить вкладку выбрать вкладку при перезапуске приложения (хотя связанный виджет отображает текущую страницу для вкладки, которую следует выбрать).Например, если приложение будет убито с выбранной вкладкой 2, при перезапуске будет отображаться вкладка 0, но представление

Вот код, который я использую для создания вкладок:

fun setupTabs(){
    val allCatalogs = _viewModel.allCatalogs.value!!)
    tabs.removeAllTabs()

    val selectedCatalogId = _viewModel.selectedCatalogId
    var selectedTab: TabLayout.Tab? = null
    for (catalog in allCatalogs){
        val tab = tabs.newTab()
        tab.text = catalog.catalogName
        tab.tag = catalog
        val selected = catalog.catalogId == _viewModel.selectedCatalogId
        tabs.addTab(tab, selected)
        if(selected){
            selectedTab = tab
        }
    }
    mSectionsPagerAdapter?.setTotalNumberPages()
}

Я что-то упустил?

Спасибо

ОБНОВЛЕНИЕ : я сделал это, изменив код так, чтобы выбор выполнялся через небольшой интервал:

if(selectedTab != null) {
        Handler().postDelayed({selectedTab.select()},
                              50)
}

Означает ли это, что вы не можете изменить выбранную вкладку по умолчанию во время построения при использовании TabLayout с ViewPager?

...