【问题标题】:Preference is not displayed correctly on Tablet偏好设置未在平板电脑上正确显示
【发布时间】: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


【解决方案1】:

确保您的活动扩展了 Activity,而不是 PreferenceActivity。 当我从这里What to use instead of "addPreferencesFromResource" in a PreferenceActivity?使用建议时,我也有同样的情况@

【讨论】:

  • 我一点也不知道为什么它会起作用,但它起作用了:)...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 2015-08-24
  • 1970-01-01
相关资源
最近更新 更多