我有一个活动和两个片段。片断a和片断b。
我需要实现像,最初碎片应该在那里。在按钮
之后,单击FragmentB应该在那里。
public class FragmentActivity extends AppCompatActivity {
FrameLayout activityFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
activityFragment = (FrameLayout) findViewById(R.id.activityFragment);
Fragment fragment = new FragmentA();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.activityFragment, fragment);
transaction.commit();
}
public void goToFrag(View view) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment fragment = new FragmentB();
transaction.add(R.id.fragmentRoot, fragment);
transaction.commit();
}
}
public class FragmentA extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view=inflater.inflate(R.layout.fragment_a,container,false);
return view;
}
}
我的第二段代码:
public class FragmentB extends Fragment {
public FragmentB() {
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view=inflater.inflate(R.layout.fragment_b,container,false);
return view;
}
}
首先,您应该始终在xml中使用FrameLayout
来替换片段,然后使用不同的容器来添加片段ActivityFragment
和FragmentRoot
。对于FragmentManager
,您可以使用Add
或Replace
,因此ActivityFragment
是您使用的容器(正如文档建议的那样,它应该是作为包装器的framelayout)
public void goToFrag(View view) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment fragment = new FragmentB();
transaction.replace(R.id.activityFragment, fragment); // use the same container where you switch A and B
transaction.commit();
}
我试图通过活动中按钮的onclick事件将一个主片段替换为另一个片段,但该片段恰好悬停在主片段上。 这是我的密码
我正在制作抽屉菜单,目前正在使用: getSupportFragmentManager()。开始交易()。替换(R.id.mainfragment,f1)。提交(); 但是正如你所看到的,它总是用新的片段替换主片段。谢谢!
问题内容: 我在小组活动中有一个片段,我想用另一个片段替换它: 在不使用活动组的情况下作为单独的项目完成时,它工作正常,当控件进入getview()时,每件事在日志猫中都可以正常工作,但是没有视图可见,甚至没有任何异常出现,我希望将书详细信息片段由部分详细信息片段代替。 图书详细信息片段的XML具有id book_description_fragment,而部分描述片段的xml具有id secti
在我的应用程序中,当点击导航抽屉上的不同项目时,我需要在片段之间切换。我为它创建了一个新方法DisplayFragment。代码如下: 它显示了错误的"片段元素在上面的行如下"错误的第二个参数类型找到android.support.v4.app.片段;需要android.app.片段;" 我试着改变从android的导入。支持v4.app。碎片到android。应用程序。碎片但它随后显示了Frag
我试图打开一个片段,当一个对话框被点击在另一个片段。我在用ActionBarSherlock和Tab。我的片段附在视图页中。我几乎完成了这项工作。但是我不能替换视图页内的新片段。我有个错误。我读了这里的线程。解决办法还不清楚。 10-18 21:34:40.379:e/AndroidRuntime(19618):致命异常:main 10-18 21:34:40.379:e/AndroidRunti