У меня есть TextView, который я заполняю внутренними ссылками приложения, используя ClickableSpans. Я использую Kotlin, но я приму ответы в Kotlin или Java.
val spannableString = SpannableString(myTextView.text)
val clickableSpan = object : ClickableSpan() {
override fun onClick(view: View) {
// handle click
}
}
spannableString.setSpan(clickableSpan, spanStartIndex, spanEndIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
myTextView.movementMethod = LinkMovementMethod.getInstance()
myTextView.setText(spannableString, TextView.BufferType.SPANNABLE)
Когда я переключаю Dark Mode на телефоне, все мои ссылки исчезают! Если я перезагружаю представление, ссылки восстанавливаются и снова работают, но до тех пор текст снова становится простым текстом. Это происходит при переключении из светлого в темный режим и наоборот.
Я ищу чистый способ решения этой проблемы, не перезагружая мою деятельность, если пользователь переключает светлый / темный режимы. Есть ли что-нибудь автоматическое c, которое может решить мою проблему? Может быть, каким-то образом сохранить промежутки в комплекте saveInstanceState, если это сработает? Или есть функция OnNightModeEnabled, о которой я не знаю, что мне нужно переопределить?