【发布时间】:2020-06-05 18:37:09
【问题描述】:
我有简单的TabLayout 和 2 个Tabs。在某一时刻,我需要禁用 TabLayout 并禁用用户与 Tabs 的交互。
但如果我想再次启用它们,它就不起作用。选项卡指示器和 alpha 恢复正常,但选项卡对用户交互没有反应。
select() 函数与侦听器正常反应,只有与屏幕上的选项卡的物理交互不起作用。
有人有这个问题吗?
启用/禁用Tabs 的功能(某些部分只是对禁用状态的视觉更改 - 如果您像Button 一样禁用它,TabLayout 不会变灰)
private fun deactivateTabs(){
tabs.apply {
selectTab(null)
isEnabled = false
touchables?.forEach {
it.isEnabled = false
it.alpha = .5f
}
setSelectedTabIndicatorColor(ContextCompat.getColor(tabs.context, R.color.grey))
}
}
private var lastSelected: Int = -1
private fun activateTabs(){
tabs.apply {
isEnabled = true
touchables?.forEach {
it.isEnabled = true
it.alpha = 1f
}
setSelectedTabIndicatorColor(ContextCompat.getColor(tabs.context, R.color.colorTab))
if (lastSelected == -1){
//default tab
getTabAt(0)?.select()
} else {
getTabAt(lastSelected)?.select()
}
}
}
另外,childCount 与我的 TabLayout 中的 tabCount 不同,这在 Android 中是完全奇怪的行为。我在TabLayout 内的布局xml 中添加了选项卡,因此它应该算作它的子级。但是childCount 是 1,tabCount 是 2。
我完全没有这种行为。
【问题讨论】:
标签: android android-layout android-tablayout