具有 PreferenceFragment 的 ViewPager
直到最近,使用 android.support.v4.app.FragmentPagerAdapter
會阻止使用 PreferenceFragment
作為 FragmentPagerAdapter 中使用的片段之一。
支援 v7 庫的最新版本現在包括 PreferenceFragmentCompat
類,它將與 ViewPager 和 v4 版本的 FragmentPagerAdapter 一起使用。
擴充套件 PreferenceFragmentCompat
的示例片段:
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.view.View;
public class MySettingsPrefFragment extends PreferenceFragmentCompat {
public MySettingsPrefFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.fragment_settings_pref);
}
@Override
public void onCreatePreferences(Bundle bundle, String s) {
}
}
你現在可以在 android.support.v4.app.FragmentPagerAdapter
子類中使用此 Fragment:
private class PagerAdapterWithSettings extends FragmentPagerAdapter {
public PagerAdapterWithSettings(FragmentManager supportFragmentManager) {
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
switch(position) {
case 0:
return new FragmentOne();
case 1:
return new FragmentTwo();
case 2:
return new MySettingsPrefFragment();
default:
return null;
}
}
// .......
}