在PreferenceFragment和android.support.v4.app.Fragment之间切换;

时间:2018-09-10 15:28:15

标签: android android-fragments

我有一个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 :(得分:0)

除非使用支持首选项库,否则PreferenceFragment会扩展android.app.Fragment,因此您还需要为其他Fragment扩展android.app.Fragment

但是,由于Fragment和PreferenceFragment在API 28中已弃用,因此您可能只想转换为支持Fragment和PreferenceFragmentCompat。请注意,这将意味着您可能正在使用的所有首选项库在更新之前都可能无法工作。