我正在使用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的截图:
这是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>
答案 0 :(得分:4)
确保您的活动扩展了活动,而不是PreferenceActivity。 当我使用来自What to use instead of "addPreferencesFromResource" in a PreferenceActivity?
的建议时,我也一样