我正在使用一个PreferenceFragment
,并在PreferenceFragment
的onCreate方法中从xml加载偏好设置:
@Override
public void onCreate(Bundle savedInstanceState)
{
...
addPreferencesFromResource(R.xml.preferences_base);
PreferenceManager.setDefaultValues(getActivity(), R.xml.preferences_base, false);
...
}
这是来自preference_base.xml的一段摘录:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:key="boolStartSettings"
android:title="@string/prefBoolStartSettings"
android:summary="@string/prefBoolStartSettingsSummary"
android:defaultValue="false"/>
...
</PreferenceScreen>
在模拟器和我的Galaxy S4上,这个应用程序运行良好并符合预期。今天我在GalaxyTab上测试了该应用程序,发现偏好设置未正确显示:
以下是来自我的Galaxy S4的屏幕截图:
![enter image description here](https://istack.dev59.com/JUvKh.webp)
![enter image description here](https://istack.dev59.com/hYNyp.webp)
有什么想法为什么会出现这种情况以及如何解决?
编辑:
我现在在我的首选项中实现了一个子屏幕,并且它被正确显示:
![enter image description here](https://istack.dev59.com/4jlnp.webp)
我担心这不会太有帮助,但这是我偏好设置xml的摘录:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- not shown correctly -->
...
<PreferenceCategory
android:title="@string/prefKatEffectsAndAnimations">
<PreferenceScreen
android:key="@string/keyPrefDetails"
android:title="@string/prefCmdDetailSettings"
android:persistent="true">
<!-- shown correctly -->
...
</PreferenceScreen>
</PreferenceCategory>
...
</PreferenceScreen>
android:layout_width="fill_parent"
在PreferenceScreen
上是否有任何区别? - Rudi Kershawandroid:layout_width="fill_parent"
,但也没有起作用。 - user1567896