我的 xml 中有几个片段(其中 4 个)。我第一次使用以下代码运行活动:
private void loadSenderFragment(int sender_fragment) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// TODO: Animation for later
if (loadRunOnce) {
//ft.setCustomAnimations(R.anim.fade_in, R.anim.fade_out, R.anim.fade_in, R.anim.fade_out);
}
switch (sender_fragment) {
case FILES_TO_SEND_FRAGMENT:
Log.i(StaticValues.TAG, "files to send fragment visisble");
ft.hide(fragmentSendDev);
ft.show(fragmentFilesSend);
break;
case SEND_TO_FRAGMENT:
Log.i(StaticValues.TAG, "hiding filesSend, loading senddev");
ft.hide(fragmentFilesSend);
ft.show(fragmentSendDev);
break;
}
if (loadRunOnce)
ft.addToBackStack(null);
else {
ft.hide(fragmentReceiveWait);
ft.hide(fragmentReceiving);
loadRunOnce = true;
}
ft.commit();
}
它显示了正确的视图 (Files_to_send_fragment),然后通过回调从该片段中我再次调用 loadSenderFragment,但这次是 SEND_TO_FRAGMENT 的情况。我知道这会被调用,因为我的日志:隐藏 fileSend,加载 senddev 显示在我的 logcat 上,并且 ft.addToBackStack 也可以正常工作,因为按下后退按钮不会取消其中的活动。但是来自 fragmentFilesSend 的布局继续显示,而另一个则没有(当前为白色背景的页面)。根据我对代码的理解和我的意图,隐藏文件发送并显示发送设备。有谁知道为什么隐藏/显示可能不起作用。
顺便说一句,我正在使用兼容性库。(还尝试了常规的 api Honeycomb+ 库,但仍然没有)。