アプリの設定画面を作成しようとしています。SettingsFragment
から拡張されたというクラスを作成しましたPreferenceFragment
。一部のデータを動的にロードする必要があるため、xml から設定項目をロードしていません。そのため、すべてをプログラムで構築しています。すべてが期待どおりに表示されています。ただし、上部には追加のパディングがあります。以下の画像を参照してください。
なぜそれが起こっているのかわかりません。SettingsFragment
クラスで書いた以下のコードは次のとおりです。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
root.setTitle("Hello World");
PreferenceCategory cat1 = new PreferenceCategory(root.getContext());
root.addPreference(cat1);
ListPreference lang = new ListPreference(root.getContext());
lang.setEntries(new CharSequence[]{"English", "Bangla"});
lang.setEntryValues(new CharSequence[]{"en", "bn"});
lang.setTitle("Choose Language");
lang.setSummary("English");
cat1.addPreference(lang);
CheckBoxPreference check = new CheckBoxPreference(root.getContext());
check.setTitle("Title Check");
cat1.addPreference(check);
setPreferenceScreen(root);
}
参考までに、私はNavigationDrawer
自分のアプリで使用しています。これSettingsFragment
は、ドロワーからナビゲーション項目がクリックされたときに読み込まれます。