具有 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;
}
}
// .......
}