10英寸平板电脑上的首选项菜单

时间:2013-05-21 08:10:41

标签: android menu tablet preference

我想弄清楚为什么在横向模式下使用它时,我的偏好菜单的布局会以错误的方式显示在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);

        }

    }

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我的解决方案是从SettingsActivity延长Activity,而不是PreferenceActivity。但是SettingsFragment当然应该扩展PreferenceFragment。它帮助了我,希望这也解决了你的问题。