我使用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的截图:
这是Galaxytab的截图
如您所见,在首选项视图中的横向模式中有一个奇怪的帧或边框。
知道为什么会这样吗?怎么解决?
编辑:
我已经在我的首选项中实现了一个首选项子屏幕,它正确地显示了:
如果我按向上键进入我的主首选项页面,奇怪的边框/边框仍然存在。
恐怕这没有多大帮助,但这里是我的首选项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>
最佳答案
确保您的活动扩展了活动,而不是首选活动。
我在这里使用adviseWhat to use instead of "addPreferencesFromResource" in a PreferenceActivity?