【发布时间】:2023-04-08 23:49:01
【问题描述】:
我正在使用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>
【问题讨论】:
-
只有在横向或纵向时才会出现“框架/边框”吗?另外,在
PreferenceScreen上明确声明android:layout_width="fill_parent"有什么不同吗? -
@RudiKershaw:问题仅出现在横向模式下。我已经测试了
android:layout_width="fill_parent",但它也不起作用。
标签: android android-preferences preferencefragment