android - Android底视图Activity片段的多个实例
问题描述
我使用底视图活动创建了一个应用程序。我的问题是使用片段的多个实例。我已经编写了片段的 onPause 和 onResume 来开发活动生命周期,但是在片段之间切换时,每个片段都会创建两个实例,因此这些功能无法正常工作。
我见过这个,但我的主要看起来像这样:
public class Main extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView navView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(navView, navController);
}
}
如何在这里实现 FragmentManager?
解决方案
你需要使用:
getSupportFragmentManager().beginTransaction().replace(
R.id.your_fragment_container,
YourFragment(),
YourFragmentsTag
)
推荐阅读
- android - 如何在导航视图中以编程方式在 Android 中使用 layout_gravity="start" 或 layout_gravity="LEFT"
- angular - ForkJoin 无法从多个表单 valueChanges 中侦听多个 observables
- r - 为什么 coord_proj 和 ggplot2 会给我这个错误?
- java - Java 8 中的类型
- ios - iOS 上的解析平台:用最近更改的服务器值替换更改的本地值的最佳方法?
- visual-studio - 如何知道特定的预处理器指令是否在第三方 DLL 中定义?
- swift - Swift Abort Trap 6 在编译期间由在@Published String 中放置一个值引起
- sql-server - Pandas 如何从 SQL Server 中解析二进制格式的“datetimeoffset”值
- mongodb - 使用 mongoDB 切换布尔值
- ios - 具有最佳行为的 UISplitViewController