private synchronized void showFragment(Stack<Fragment> fragmentStack, Class cls, Bundle mBundle, String uuid) {
if (fragmentStack != fragmentMap.get(mViewDataBinding.rgRadioGroup.getCheckedRadioButtonId()))
return;
Fragment fragmentTarget = getSupportFragmentManager().findFragmentByTag(uuid);
FragmentTransaction tf = getSupportFragmentManager().beginTransaction();
if (fragmentTarget == null) {
fragmentTarget = fragmentNewInstance(cls, mBundle);
}
for (Fragment tmp : getSupportFragmentManager().getFragments()) {
if (tmp instanceof SupportRequestManagerFragment) {
continue;
}
String tag = tmp.getTag();
if (TextUtils.isEmpty(tag)) {
tag = UUID.randomUUID().toString();
try {
FieldUtils.writeField(tmp, "mTag", tag);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
if (tmp.getTag().equals(uuid)) {
continue;
}
tf.hide(tmp);
}
//不包含
if (fragmentStack.search(fragmentTarget) == -1) {
fragmentStack.push(fragmentTarget);
tf.add(R.id.fg_container, fragmentTarget, uuid).show(fragmentTarget);
} else {
//调整堆栈位置 栈顶元素问显示的fragment
fragmentStack.remove(fragmentTarget);
fragmentStack.push(fragmentTarget);
tf.show(fragmentTarget);
}
removeOtherStack(fragmentStack, tf);
tf.commitNowAllowingStateLoss();
}
2020-03-12
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 「SQCA」写作公式 起源:「SQCA」模型是“结构化表达”工具,是麦肯锡咨询顾问芭芭拉·明托在《金字塔原理》中提...
- He who plants a tree, plants a hope. The reforms finally ...
- 夜深人未静,因有你陪同(玫瑰园主题作业) 文/付朝兰 夜已经深了,星星也在为寻觅一个人,焦急万分。它眨眨眼,亮闪闪...