简体   繁体   English

android中的片段单击事件问题

[英]Fragments Click Events Problems in android

I am working on fragment concepts in andorid.I am adding multiple layouts into one FrameLayout, 我正在研究andorid中的片段概念。我正在将多个布局添加到一个FrameLayout中,

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.addToBackStack("web");
ft.setTransitionStyle(FragmentTransaction.TRANSIT_ENTER_MASK);
Fragment fragment = new TestFragment();
ft.setCustomAnimations(R.anim.right_to_left_remove, R.anim.right_to_left_add);
ft.add(R.id.test, fragment);
ft.commit();

I clicked the button in fragment1, fragment2 added above with fragment1, when click the same area of fragement2 layouts with no buttons another one fragment added. 我单击fragment1中fragment2中的按钮,然后在fragment2布局的同一区域中单击按钮,然后又添加了一个片段。 Fragment1 button clickable in Fragment2, so the fragments multiple time adding. 在Fragment2中可单击Fragment1按钮,因此片段需要多次添加。

How do I disable click events in fragment2 layouts?? 如何禁用fragment2布局中的单击事件?

Thanks, 谢谢,

Try to use ft.replace instead of ft.add 尝试使用ft.replace而不是ft.add

If you want to use ft.add , at lest remove the old fragment: 如果要使用ft.add ,请至少删除旧的片段:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.main, new Fragment1(), "frag1");
ft.add(R.id.main, new Fragment2(), "frag2");
ft.commit();

// Later on
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Manually remove fragments
ft.remove(getSupportFragmentManager().findFragmentByTag("frag1"));
ft.remove(getSupportFragmentManager().findFragmentByTag("frag2"));
ft.add(R.id.main, new Fragment1(), "newFrag1");
ft.commit();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM