Переключение между PreferenceFragment и android.support.v4.app.Fragment; - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть BottomNavigationView, где я могу перемещаться между фрагментами. Третий фрагмент - PreferenceFragment, а два других - Fragment. У меня есть простой случай переключения для замены фрагментов, но я получаю сообщение об ошибке SettingsFragment cannot be converted to Fragment.

Как я могу перемещаться между этими фрагментами?

  BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Fragment selectedFragment = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    toolbar.setTitle("Home");
                    selectedFragment = HomeFragment.newInstance();
                    break;
                case R.id.navigation_dashboard:
                    toolbar.setTitle("Dashboard");
                    selectedFragment = DashboardFragment.newInstance();
                    break;
                case R.id.navigation_settings:
                    toolbar.setTitle("Settings");
                    selectedFragment = SettingsFragment.newInstance();
                    break;
            }
            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.fragmentContainer, selectedFragment);
            transaction.commit();
            return true;
        }
    };

1 Ответ

0 голосов
/ 10 сентября 2018

Если вы не используете библиотеку предпочтений поддержки, PreferenceFragment расширяет android.app.Fragment, поэтому вам также необходимо расширить android.app.Fragment для других ваших фрагментов.

Однако, поскольку Fragment и PreferenceFragment устарели в API 28, вы можете просто преобразовать их в поддержку Fragment и PreferenceFragmentCompat. Имейте в виду, что это будет означать, что любые библиотеки предпочтений, которые вы можете использовать, вероятно, не будут работать, пока они не будут обновлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...