我正在写一个应用程序。它需要在旧的 android 操作系统上运行才能有用。我使用 PreferencesActivity 编写了首选项屏幕,该 PreferencesActivity 填充了包含 PreferenceScreen 的 options.xml 文件。它没有首选项子菜单(因此 PreferenceFragment 没有提供真正的好处)。
在 Android 2.1(2.2 和 2.3,尚未在 ICS 上测试)中,屏幕在横向中正确显示如下:
但在 Jellybean 上,它看起来像这样:
看起来很可怕。我没有定义为布局,只是标准的 addPreferencesFromResource()。有谁知道这可能是什么原因?还是解决方案?
我的 onCreate 看起来像这样:
protected void onCreate(Bundle savedInstanceState) { //
super.onCreate(savedInstanceState);
Log.i(TAG, "Options Activity Loaded.");
setTitle(getString(R.string.optionsTitle));
addPreferencesFromResource(R.xml.options);
setupListeners();
}
其他一切都只是制作 Preference 对象并在它们被点击时分配方法来做事。我不想为 PreferenceFragment 和 PreferenceActivity 编写代码。如果最大版本的市场份额没有该 API 并且他们不会将其添加到兼容性库中,我不明白谷歌希望我们如何使用 Fragment API。