我有一个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;
}
};
答案 0 :(得分:0)
除非使用支持首选项库,否则PreferenceFragment会扩展android.app.Fragment
,因此您还需要为其他Fragment扩展android.app.Fragment
。
但是,由于Fragment和PreferenceFragment在API 28中已弃用,因此您可能只想转换为支持Fragment和PreferenceFragmentCompat。请注意,这将意味着您可能正在使用的所有首选项库在更新之前都可能无法工作。