2015-04-27 2 views
0

Начал работать с Android недавно и хотел создать экран настроек в моем приложении. Для этого я использую android UI settings guide. Однако, когда я набираю SettingsFragment для загрузки на свой экран, первый мой номер PreferenceCategory находится за моей панелью действий. Я не могу понять, что вызывает это. Я знаю это только потому, что я спрятал панель действий и увидел ее. Если я смогу немного сдвинуться с места, я был бы доволен этим. Но не очень разбирайтесь в том, как эти настройки форматируются.Проблема с моими настройками андроида

Вот что я сделал для создания этого. Мне нужен макет для этого фрагмента? Если да, то как я могу добавить это?

SettingsFragment.java

public class SettingsFragment extends PreferenceFragment { 
    @Override 
    public void onCreate(Bundle saveInstanceState){ 
     super.onCreate(saveInstanceState); 

     ((SettingsActivity) getActivity()).getActionBar().show(); 
     ((SettingsActivity) getActivity()).getActionBar().setTitle(" Settings"); 

     //Loading the preference XML for the user profile settings 
     addPreferencesFromResource(R.xml.preferences); 

    } 

} 

SettingsActivity.java

public class SettingsActivity extends Activity implements SharedPreferences.OnSharedPreferenceChangeListener { 

    //@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Display the fragment as the main content. 
     //setContentView(R.layout.fragment_settings); 
     getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); 

    } 

preferences.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory 
     android:title="PROFILE SETTINGS" 
     android:key="pref_user_settings"> 
     <Preference 
      android:key="perf_username" 
      android:summary="geddon" 
      android:title="@string/perf_username"> 
     </Preference> 
     <Preference 
      android:key="perf_gender" 
      android:summary="Female" 
      android:title="Gender"> 
     </Preference> 
     <Preference 
      android:key="perf_email" 
      android:summary="[email protected]" 
      android:title="Email"> 
     </Preference> 

    </PreferenceCategory> 

    <PreferenceCategory 
     android:title="@string/perf_user_settings" 
     android:key="pref_key_preferences_settings"> 

     <ListPreference 
      android:key="perf_country" 
      android:title="Country" 
      android:dialogTitle="Country" 
      android:defaultValue="USA"> 
     </ListPreference> 

     <Preference 
      android:key="perf_password" 
      android:summary="password" 
      android:title="Change Password"> 
     </Preference> 

    </PreferenceCategory> 

</PreferenceScreen> 

ScreenShot enter image description here

+0

Как выглядит вид деятельности? это работает, если вы показываете панель действий в действии, а не в фрагменте – dabluck

+0

Обновлено с помощью экрана, и вы можете видеть, что категория android: title = "PROFILE SETTINGS" скрыта. – Geddon

+0

Вы пытались настроить панель действий, которая должна отображаться в действии, прежде чем совершать транзакцию фрагмента – dabluck

ответ

1

попытаться установить макет в своей деятельности.

setContentView(R.layout.activity_layout); 

где activity_layout - это просто пустая рамка или что-то в этом роде. затем отобразите панель действий в действии. и я думаю, что это сделает.

+0

Я думаю, что я попытался это сделать, если вы посмотрите на мою настройкуActivity, у меня есть, что прокомментировал использование файла frag_settings.xml layoyt. Если я это сделаю, мне все равно нужно использовать getFragmentManager(). правильно? Несмотря на это, я смог получить макет, отображаемый поверх предпочтений в качестве теста, и заметил, что он также был сдвинут, а не ниже панели действий. Также - обычно ли люди форматируют предпочтения или должны автоматически знать, что они отображаются под панелью действий? Я думаю, что мой вопрос может быть где-то еще, если это так. – Geddon

+0

он должен работать нормально. это не нормальное поведение. вы работаете с appcompat и панелью инструментов? – dabluck

+0

Да, я работаю с appcompat ... это причина? Если да, то какие-нибудь идеи, чтобы обойти это? – Geddon

Смежные вопросы