android-studio - 如何从主要活动中替换片段
问题描述
我有两个片段,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();
如何删除或替换仪表板片段?任何帮助将不胜感激。
解决方案
首先,您必须在 MainActivity 的布局文件中声明一个 FragmentContainer。这是显示两个片段的空间。然后,您可以实例化这两个片段并通过添加在它们之间进行更改:
Dashboard1Fragment dFragment = new Dashboard1Fragment();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, dFragment);
fragmentTransaction.commit();
这将替换您的 FragmentContainer 的内容并实例化一个新的 Fragment,而不会重叠两个 Fragment。
推荐阅读
- c# - 将 Json 文件拆分为 kafka 主题
- csv - 在 Rstudio 中使用所有报价导出 csv
- laravel - Laravel 与 Elasticbeanstalk:所有路由都返回 404,除了 '/' 路由
- python - 当 Numpy 数组在迭代中被打乱和嘈杂时,保持 Numpy 数组排序不变
- reactjs - React Hooks:如何调整单个 div 的大小?
- reactjs - 带有 JSX 道具的组件在 ezyme 浅包装上失败
- webrtc - WebRTC P2P 安全吗?
- regex - 替换文本时的 Atom \K 替代
- python - 使用 for 循环验证密码:Python
- selenium - 如何使用 Selenium 添加 chrome 扩展