У меня есть другие фрагменты, которые загружаются и работают нормально, но они расширяют Fragment, а не PreferenceFragmentCompat. Я вытащил код прямо из документации Android. Также я использую androidx во всем приложении.
Код: Выделить всё
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch (item.getItemId()) {
case R.id.navigation_dashboard:
selected = MapFragment.newInstance();
break;
case R.id.navigation_notifications:
selected = new PreferencesFragment();
break;
default:
selected = OffersFragment.newInstance(1);
break;
}
transaction.replace(R.id.frame_layout, selected).commit();
return true;
}
};
....
static class PreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreate(savedInstanceState);
setPreferencesFromResource(R.xml.preferences, rootKey);
}
// TODO: Rename method, update argument and hook method into UI event
}
Код: Выделить всё
08-15 11:24:47.857 28789-28789/com.xxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxx, PID: 28789
java.lang.StackOverflowError: stack size 8MB
at androidx.preference.PreferenceFragmentCompat.onCreate(PreferenceFragment Compat.java:141)
at com.xxx.MainActivity$PreferencesFragment.onCreatePreferences(MainActivity.java:138)
D/Error: ERR: exClass=java.lang.StackOverflowError
ERR: exMsg=stack size 8MB
ERR: file=PreferenceFragmentCompat.java
ERR: class=androidx.preference.PreferenceFragmentCompat
ERR: method=onCreate line=141
ERR: stack=java.lang.StackOverflowError: stack size 8MB
Подробнее здесь: https://stackoverflow.com/questions/575 ... references
Мобильная версия