update 主题颜色

pull/32/head
Administrator 5 years ago
parent f8c9393405
commit b690838479
  1. 2
      app/src/main/java/io/legado/app/lib/theme/prefs/ATEPreferenceCategory.kt
  2. 23
      app/src/main/java/io/legado/app/lib/theme/prefs/ATESwitchPreference.kt

@ -29,7 +29,7 @@ class ATEPreferenceCategory : PreferenceCategory {
override fun onBindViewHolder(holder: PreferenceViewHolder?) {
super.onBindViewHolder(holder)
holder?.let {
val view = it.itemView
val view = it.findViewById(android.R.id.title)
if (view is TextView) {
view.setTextColor(ThemeStore.accentColor(view.getContext()))//设置title文本的颜色
}

@ -3,14 +3,13 @@ package io.legado.app.lib.theme.prefs
import android.content.Context
import android.os.Build
import android.util.AttributeSet
import android.view.ViewGroup
import android.widget.Switch
import androidx.annotation.RequiresApi
import androidx.appcompat.widget.SwitchCompat
import androidx.preference.PreferenceViewHolder
import androidx.preference.SwitchPreferenceCompat
import io.legado.app.R
import io.legado.app.lib.theme.ATH
import io.legado.app.lib.theme.ThemeStore
import java.util.*
class ATESwitchPreference : SwitchPreferenceCompat {
@ -31,21 +30,9 @@ class ATESwitchPreference : SwitchPreferenceCompat {
override fun onBindViewHolder(holder: PreferenceViewHolder?) {
super.onBindViewHolder(holder)
holder?.let {
val view = it.itemView
if (view is ViewGroup) {
val queue = LinkedList<ViewGroup>()
queue.add(view)
while (!queue.isEmpty()) {
val current = queue.removeFirst()
for (i in 0 until current.childCount) {
if (current.getChildAt(i) is Switch) {
ATH.setTint(current.getChildAt(i), ThemeStore.accentColor(view.getContext()))
return
} else if (current.getChildAt(i) is ViewGroup) {
queue.addLast(current.getChildAt(i) as ViewGroup)
}
}
}
val view = it.findViewById(R.id.switchWidget)
if (view is SwitchCompat) {
ATH.setTint(view, ThemeStore.accentColor(view.getContext()))
}
}
}

Loading…
Cancel
Save