gpt4 book ai didi

android - 将自定义主题应用于 PreferenceFragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:01 28 4
gpt4 key购买 nike

我有包含左右 fragment 的多 Pane View 。在右边的 fragment 上,我正在启动一个 PreferenceFragment。问题是 fragment 看起来完全扭曲,没有任何风格。有没有办法将主题仅应用于 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 中膨胀了首选项布局。有没有办法在不使用 addPreferencesFromResource 方法而只使用 LayoutInflater 服务的情况下膨胀首选项布局?

最佳答案

我用它来为 PreferenceFragments 设置样式:

<style name="PreferenceTheme" parent="@style/AppTheme">
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:background">@color/cpWhite</item>
...
</style>

然后,在 onCreateView 中:

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
...
container.getContext().setTheme(R.style.PreferenceTheme);
}

对我有用。希望对您也有帮助。

关于android - 将自定义主题应用于 PreferenceFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463336/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com