如何用其他片段改变片段的整个视图!!
或者如何用另一个片段关闭当前片段,请用布局说明
提前致谢...
答案 0 :(得分:0)
{% extends 'path_to_base_html/base.html' %}
{% block content %}
Child html
{% endblock %}
这将帮助您使用getSupportFragmentManager().beginTransaction().replace(R.id.fragmentlayout,new fragment()).commit()
替换ID为FragmentLayout的视图中的现有片段。
谢谢你,我希望这很有帮助。
答案 1 :(得分:0)
您可以在活动中添加或替换片段。在活动的布局FrameLayout
文件中创建xml
。
然后在您的活动中执行此操作以替换片段。每次要将一个片段替换为其他片段时,可以使用相同的代码。
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG);
transaction.addToBackStack(null);
transaction.commit();
如果您想要添加片段而不是替换,请执行以下操作:
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG);
transaction.addToBackStack(null);
transaction.commit();
当你想用anu其他片段替换添加的frogment时,你必须先删除以前的片段(或者你可以隐藏以前的片段;取决于你的要求)。请参阅以下代码:
Fragment fragment = getSupportFragmentManager().findFragmentByTag(YOUR_FRAGMENT_STRING_TAG);
if(fragment != null)
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
请参阅以下有关SO的相关问题:
Difference between add(), replace(), and addToBackStack()
Basic difference between add() and replace() method of Fragment
Difference between add() & replace() with Fragment's lifecycle
或者看一下我对类似问题的回答:
答案 2 :(得分:0)
首先,在您添加片段的活动中选择一个Framelayout。
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.framelayout,fragment_1);
transaction.addToBackStack(null);
transaction.commit();
当你用你编写的第二个片段替换第一个片段时,只需将fragment_1更改为fragment_2
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.framelayout,fragment_2);
transaction.addToBackStack(null);
transaction.commit();