|
|
@@ -127,13 +127,26 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
override fun onSelected(index: Int, totalCount: Int) {
|
|
|
super.onSelected(index, totalCount)
|
|
|
// 选中Tab,设置为粗体
|
|
|
- setBoldStyle(true)
|
|
|
+ handleChange(index, true)
|
|
|
}
|
|
|
|
|
|
override fun onDeselected(index: Int, totalCount: Int) {
|
|
|
super.onDeselected(index, totalCount)
|
|
|
// 不选中Tab,设置为普通体
|
|
|
- setBoldStyle(false)
|
|
|
+ handleChange(index, false)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 这个Tab库的切换回调,是在onLayout时回调的,导致我们切换字体粗细时,需要requestLayout,就会造成递归绘制
|
|
|
+ private fun handleChange(index: Int, isSelected: Boolean) {
|
|
|
+ val newTab = mTabList[index]
|
|
|
+ val currentTab = KeyboardHolder.getKeyboardService()
|
|
|
+ ?.getKeyboardViewModel()?.currentPrologueTab?.value
|
|
|
+ // 没有改变,则不需要切换
|
|
|
+ if (currentTab == newTab) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 切换字体粗细
|
|
|
+ setBoldStyle(isSelected)
|
|
|
}
|
|
|
}
|
|
|
// Tab文字
|