gpt4 book ai didi

android - Fragment 必须在主题 onCreate 中指定preferenceTheme

转载 作者:IT老高 更新时间:2023-10-28 23:37:24 27 4
gpt4 key购买 nike

我正在尝试找出为什么会出现此错误:

java.lang.IllegalStateException: Must specify preferenceTheme in theme
at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:210)
at android.support.v4.app.Fragment.performCreate(Fragment.java:2177)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager

当尝试运行我的 PreferenceFragmentCompat这是上面的类代码:

public class SettingsFragment extends PreferenceFragmentCompat {

public SettingsFragment() {
// Required empty public constructor
}

public static SettingsFragment newInstance() {
SettingsFragment fragment = new SettingsFragment();
return fragment;
}

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.settings_preferences, rootKey);
}

}

这是显示 fragment 的 Activity list 声明

<activity
android:name=".active_minutes_screen.view.ActiveMinutesActivity"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

在上述 MainActivity 中显示 fragment 的代码

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, HistoryFragment.newInstance());
ft.commit();

我通过 MainActivity 应用的主题

<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>

最佳答案

感谢@Panther 建议的解决方案。我所要做的就是添加这一行 <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>到我的应用程序主题,而不仅仅是像这样显示我的 PreferenceFragment 的单个 Activity 的主题:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>

你也可以使用

<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>

实现现代 Material 外观。

关于android - Fragment 必须在主题 onCreate 中指定preferenceTheme,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42772442/

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