我有一个偏好设置活动,可以从xml资源将设置加载到我的应用中
addPreferencesFromResource(R.xml.secondary_settings);
我想以编程方式分别更改项目的背景颜色,该怎么办?
答案 0 :(得分:0)
我的确解决了自己的问题,这要归功于我自己而不是Google。
从您对preference.getView
到处的所有问题中,您都会意识到它并非无济于事,实际上,在Google的Preference
的标准实现中,它毫无用处,它将每次调用时都会返回一个新视图,而旧视图(在PreferenceScreen
上使用)保持不变...
因此,除非您要在android框架之外构建整个PreferenceScreen,否则此方法将毫无用处...但是我找到了解决方法
首先,它只有在使用Compat
库时才有效,因此花了我一天的时间才使它起作用……
所以您的毕业证书必须: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
或从其他地方调用您的方法