FHa*_*Han 9 android fragment android-fragments android-3.0-honeycomb
我创建了一个示例应用来测试这个重叠的问题.
我有一个片段类型Fragment1,我创建了一个Fragment1的新实例,并在运行时将它添加到我的活动中的FrameLayout.我在几个按钮的帮助下添加片段.
注意:我已经为Fragment1的每个新实例提供了一个不同的数字(#1,#2,#3等),以便在UI上显示,以帮助我找出我正在查看的片段.
所以..这就是我做的:
现在,我有这样的片段:1(#1),2(#2),1(#3),2(#4),1(#5),2(#6).
我在查看片段#6时按后退键.
似乎片段在彼此的顶部显示.
为什么?有重叠的问题吗?如何清除这个重叠的问题.我认为这将是兼容性库的一个问题...但它也是3.0.
添加片段的代码:
public int doFragmentChange(int cont1, Fragment frag1, String tag1, int cont2, Fragment frag2, String tag2,
boolean addToStack, String stackTag) {
FragmentManager fm = getFragmentManager();// getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
if (frag1 != null) {
ft.replace(cont1, frag1, tag1);
}
if (frag2 != null) {
ft.replace(cont2, frag2, tag2);
}
// add fragment to stack
if (addToStack)
ft.addToBackStack(stackTag);
return ft.commit();
}
Run Code Online (Sandbox Code Playgroud)
如果您add一个接一个地执行两个调用(两个commit调用),那么片段将显示为重叠,一个有效地位于另一个之上。
因此(对于新示例)如果说您在同一帧中用 frag2 替换 frag1,然后用 frag4 替换 frag3,并且没有后台事务,那么我预计 frag2 和 frag4 会被覆盖。
\n\n此外,您的 链接中还存在一个潜在问题replace。您应该为每个单独打电话commit。请参阅Android \xe2\x80\x94 用新堆栈替换片段返回堆栈?。
| 归档时间: |
|
| 查看次数: |
7124 次 |
| 最近记录: |