我有一个多窗格视图,有左右两个片段。在右边的片段上,我正在启动一个PreferenceFragment。问题是片段看起来完全扭曲,没有任何样式。有没有办法只对PreferenceFragment应用主题?
我尝试了this,但没有成功
我的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// create ContextThemeWrapper from the original Activity Context with the custom theme
final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.AppTheme_PreferenceTheme);
// clone the inflater using the ContextThemeWrapper
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
View view = super.onCreateView(localInflater, container, savedInstanceState);
return view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.app_settings_preference_layout);
}
我认为这个解决方案不起作用,因为我已经在onCreate中膨胀了preference-layout。有没有一种方法可以不使用addPreferencesFromResource方法而只使用LayoutInflater服务来膨胀preference-layout?
2条答案
按热度按时间a2mppw5e1#
我用这个来设置PreferenceFragments的样式:
然后,在onCreateView中:
对我有帮助。希望对你也有帮助。
ih99xse12#
在2022中,如果您使用PreferenceFragmentCompat创建首选项屏幕,您可以在其源代码中找到从R.attr.preferenceTheme获取主题的尝试。因此,如果您在应用主题中将此值设置为所需的主题,则将应用所需的主题。
对我来说非常有效