Как изменить цвет фона предпочтения? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть предпочтительная функция загрузки настроек в мое приложение из ресурса xml
addPreferencesFromResource(R.xml.secondary_settings); Я хотел бы изменить цвет фона элементов индивидуально и программно, как я могу это сделать?

enter image description here

1 Ответ

0 голосов
/ 09 июня 2019

Я решил свою проблему благодаря себе, а не Google.

Из всех вопросов, которые вы получаете о preference.getView здесь и везде, вы понимаете, что это не работает даром и действительно вСтандартная реализация Google Preference это бесполезно, она будет возвращать вам НОВЫЙ вид каждый раз, когда вы его называете, в то время как старый вид (используемый на PreferenceScreen) останется нетронутым ...
так что, если вы не создаетеВесь PreferenceScreen вне фреймворка Android, этот метод довольно бесполезен ... Но я нашел обходной путь

Прежде всего, он работает только при использовании библиотек Compat, мне потребовался 1 день работы, покачтобы заставить его работать из-за этого ...

, поэтому ваш ученик должен: implementation "com.android.support:preference-v7:$support_library_version"
А ваш класс должен: public class SecondarySettingsFragment extends PreferenceFragmentCompat

После переноса из любой точки вашей деятельностиВы хотите, чтобы PreferenceView выполнял ((RecyclerView)findViewById(android.support.v7.preference.R.id.recycler_view).getChildAt(index);

НАБЛЮДЕНИЕ, поскольку RecycleView будет иметь НУЛЕВЫХ ДЕТЕЙ в течение onCreate(), вы должны addOnGlobalLayoutListener или вызывать свой метод из другого места

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...