我想弄清楚为什么在横向模式下使用它时,我的偏好菜单的布局会以错误的方式显示在10'平板电脑上。看起来像Checkboxes右侧的行实际上位于它们的左侧。你可以在这里看到http://imageshack.us/photo/my-images/109/schnappschuss2013052109.png/
在7'平板电脑上,一切都像预期的那样有效。
我的菜单看起来像是:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:title="@string/pref_message"
android:key="pref_key_message_settings">
<CheckBoxPreference
android:key="pref_key_add_timestamp"
android:summary="@string/pref_summary_addTimestamp"
android:title="@string/pref_addTimestamp"
android:defaultValue="true"/>
<ListPreference
android:dependency="pref_key_add_timestamp"
android:summary="@string/pref_summary_timestamp_option"
android:key="pref_key_timestamp_option"
android:title="@string/pref_timestampOption"
android:dialogTitle="@string/pref_timestampOptionDialog"
android:entries="@array/pref_timestampArray"
android:entryValues="@array/pref_timestampValues"
android:defaultValue="Time" />
<CheckBoxPreference
android:key="pref_key_add_newline"
android:summary="@string/pref_summary_addNewLine"
android:title="@string/pref_addNewLine"
android:defaultValue="true"/>
<ListPreference
android:dependency="pref_key_add_newline"
android:key="pref_key_newline_option"
android:summary="@string/pref_summary_newline_option"
android:title="@string/pref_newLineOption"
android:dialogTitle="@string/pref_newLineOptionDialog"
android:entries="@array/pref_newLineArray"
android:entryValues="@array/pref_newLineValues"
android:defaultValue="LF" />
<CheckBoxPreference
android:key="pref_key_clear_text"
android:summary="@string/pref_summary_clearText"
android:title="@string/pref_clearText"
android:defaultValue="false"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_storage"
android:key="pref_key_storage_settings">
<EditTextPreference
android:key="pref_key_change_name"
android:summary="@string/pref_summary_editFilename"
android:title="@string/pref_editFilename"
android:defaultValue="history"/>
<CheckBoxPreference
android:key="pref_key_add_date"
android:summary="@string/pref_summary_addDate"
android:title="@string/pref_addDate"
android:defaultValue="true"/>
<CheckBoxPreference
android:key="pref_key_add_time"
android:summary="@string/pref_summary_addTime"
android:title="@string/pref_addTime"
android:defaultValue="true"/>
<at.rtcmanager.ConfirmPreference
android:key="pref_key_clear_history"
android:summary="@string/pref_summary_clearHistory"
android:title="@string/pref_clearHistory"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_time"
android:key="pref_key_time_settings">
<CheckBoxPreference
android:key="pref_key_autosend_time"
android:summary="@string/pref_summary_austosendTime"
android:title="@string/pref_autosendTime"
android:defaultValue="false"/>
<ListPreference
android:key="pref_key_mode_sentTime"
android:title="@string/pref_mode_sentTime"
android:summary="@string/pref_summary_mode_sentTime"
android:dialogTitle="@string/pref_modeSentTimeDialog"
android:entries="@array/pref_sentTimeModeArray"
android:entryValues="@array/pref_sentTimeValues"
android:defaultValue="10Byte" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_about"
android:key="pref_key_settings_about">
<Preference android:title="@string/prefs_about_app" >
<intent android:action="AboutActivity"/>
</Preference>
</PreferenceCategory>
</PreferenceScreen>
并且被塞满了:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Show the Up button in the action bar.
getActionBar().setDisplayHomeAsUpEnabled(true);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsMenuFragment())
.commit();
}
public static class SettingsMenuFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.app_prefs);
}
}
答案 0 :(得分:2)
我遇到了同样的问题。我的解决方案是从SettingsActivity
延长Activity
,而不是PreferenceActivity
。但是SettingsFragment
当然应该扩展PreferenceFragment
。它帮助了我,希望这也解决了你的问题。