如何从主要活动中替换片段

Posted

技术标签:

【中文标题】如何从主要活动中替换片段【英文标题】:How to replace a fragment from the main activity 【发布时间】:2021-10-13 22:31:14 【问题描述】:

我有两个片段,mainactivity 最初有一个名为“仪表板片段”的片段单击此按钮后,我必须用名为“仪表板 1 片段”的新片段替换此片段,但问题是仪表板片段没有隐藏/删除,现在它显示两者

我的代码

        public void onClick(View view) 
            Fragment fragment = null;
            fragment = new Dash_Section();
            replaceFragment(fragment);

        
     public void replaceFragment(Fragment someFragment) 
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(R.id.frame_container, someFragment);
    transaction.addToBackStack(null);
    transaction.commit();

如何删除或替换仪表板片段? 任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

首先,您必须在 MainActivity 的 Layout 文件中声明一个 FragmentContainer。这是显示两个片段的空间。然后你可以实例化这两个 Fragment 并通过添加在它们之间进行更改:

 Dashboard1Fragment dFragment = new Dashboard1Fragment();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.fragment_container, dFragment);
            fragmentTransaction.commit();

这将替换您的 FragmentContainer 的内容并实例化一个新的 Fragment,而不会重叠两个 Fragment。

【讨论】:

以上是关于如何从主要活动中替换片段的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段返回主要活动

如何在片段中使用与活动中不同的菜单?

如何更改片段中的主要活动变量

第一个片段替换为第二个片段后,如何打开导航抽屉

从片段中获取输入数据

用另一个列表替换主活动中的列表并从视图中删除旧列表