我正在使用drawable在切换按钮上设置背景。当我在应用程序中并更改任何条件时(根据切换按钮背景的变化而定),它可以正常工作。但是,如果我使用应用程序切换器终止应用程序,则背景变为透明。
toggle_button_backgroun.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false"
android:drawable="@android:color/transparent" />
<item android:state_checked="true"
android:drawable="@drawable/button_round_blue_enabled" />
</selector>
功能
:private fun configureToggleButtons(button: ToggleButton?, text: String, selectedButtons: Map<String, Int>) {
button?.text = dayText.first().toString()
button?.textOff = dayText.first().toString()
button?.textOn = dayText.first().toString()
if (text in selectedButtons.keys) {
button?.isChecked = true
}
}
private fun setButtonListener(activity: FragmentActivity, button: ToggleButton?, text: String, num: Int) {
button?.setOnClickListener {
if (button.isChecked == true) selectedButtons.put(text, num) else selectedButtons.remove(text)
}
}
private fun updateBackground(button: ToggleButton?, activity: FragmentActivity) {
button?.background = if (!enabled) activity.getDrawable(R.drawable.button_round_blue_disabled) else activity.getDrawable(R.drawable.toggle_button_backgroun)
}
返回到应用程序后,在我的Fragment的onStart中按以下顺序调用函数,依次配置configureToggleButtons,setButtonListener和updateBackground。因此,在调用updateBackground时,由于按钮状态位于selectedButtons中,因此按钮状态已设置为“ checked”,但是我看不到正确的button_round_blue_enabled背景,而是透明的。
我的听众也停止工作了。如果我单击按钮,setButtonListener不会执行。这仅在终止应用程序之后发生。进入背景并返回可以正常工作。
还有什么我需要设置的吗?