平板电脑上无法正确显示首选项

时间:2014-02-21 23:08:43

标签: android android-preferences preferencefragment

我正在使用PreferenceFragment并在PreferenceFragment的onCreate-Method中加载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

这是GalaxyTab的截图 enter image description here

如您所见,首选项视图中的横向模式中存在奇怪的边框或边框。

知道为什么会这样,以及如何解决这个问题?


修改

我已经在我的偏好设置中实现了一个首选项子屏幕,并且显示正确: enter image description here

如果我按下向上按钮进入我的主要首选项页面,奇怪的框架/边框仍然存在。

我担心这不会有太多帮助,但这里是我的偏好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>

1 个答案:

答案 0 :(得分:4)

确保您的活动扩展了活动,而不是PreferenceActivity。 当我使用来自What to use instead of "addPreferencesFromResource" in a PreferenceActivity?

的建议时,我也一样