我正在制作一个应用程序滑动菜单 and tab在底部...整个应用程序是fragment基于..我面临一些我正在使用的问题片段A然后点击一个按钮并转到片段B,in 片段B有一个按钮,点击这个按钮片段A将用新值更新......等等
意味着应该发生从 A->B 的切换..但是 backstack 也应该被维护..
这是我的代码后台堆栈:
public static void goToFragmentWithBackStack(Fragment fragment) {
Fragment tmp = fm.findFragmentByTag(fragment.getClass().getName());
if (tmp != null && tmp.isVisible())
return;
ft = fm.beginTransaction();
ft.add(R.id.content_frame, fragment, fragment.getClass().getName());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
currentTag = fragment.getClass().getName();
}
这里我只使用这个方法来转到下一个片段。并且后退按钮已经通过活动的回压来维持。当我使用此方法并再次调用片段 A(已经在容器中)时,它不会被调用...如果我使用转到片段它被称为但旧的方法片段A被破坏(会出现黑屏)。这是我的转到片段 Method:
public static void goToFragment(Fragment fragment) {
Fragment tmp = fm.findFragmentByTag(fragment.getClass().getName());
if (tmp != null && tmp.isVisible())
return;
ft = fm.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
currentTag = fragment.getClass().getName();
Log.d("Trong", "BackPressedcurrentTag " + currentTag);
}
我已经使用这个概念来重用已用过的片段:Android - 多次实例化一个Fragment https://stackoverflow.com/questions/17677178/android-instantiate-a-fragment-multiple-times
但这没有帮助。让我再次澄清我的问题:
我想在容器中一次又一次地使用用过的片段,并且所有片段也应该在按下后调用
流程应该是这样的:A->B->A->B->A AND 后压:A
请帮助我。提前致谢。
我制作的片段的新实例是这样的:
public static FollowerFragment newInstance() {
return new FollowerFragment(null,null,null);
}
public static Fragment newInstance(String cat_id,String status,String id) {
return new FollowerFragment(cat_id,status,id);
}
public FollowerFragment(String cat_id,String status,String id) {
// TODO Auto-generated constructor stub
this.str_status=cat_id;
this.counter = status;
this.user_id = id;
}