gpt4 book ai didi

android - 为什么 FragmentTransaction 偶尔工作?

转载 作者:行者123 更新时间:2023-11-29 01:51:27 25 4
gpt4 key购买 nike

我的 xml 中有几个 fragment (其中 4 个)。我第一次使用此代码运行 Activity 时:

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();
}

它显示了正确的 View (Files_to_send_fragment),然后我通过回调从该 fragment 再次调用 loadSenderFragment,除了这次是 SEND_TO_FRAGMENT 的情况。我知道这被调用是因为我的日志:隐藏 fileSend,加载 senddev 显示在我的 logcat 上并且 ft.addToBackStack 也能正常工作,因为按下后退按钮不会取消它所在的 Activity 。但是 fragmentFilesSend 的布局保持显示,而另一个不显示(当前为白色背景的页面)。据我从我的代码和我的 Intent 理解,隐藏 filessend 并显示 senddev。有谁知道为什么隐藏/显示可能不起作用。

顺便说一句,我正在使用兼容性库。 (也尝试了常规的 api Honeycomb+ 库,但仍然没有)。

最佳答案

我已经弄明白为什么会这样了。出于某种原因,如果您使用没有窗口背景的样式,即使您隐藏/显示不同的 fragment ,也会绘制所有 fragment (出于某种原因,我不知道为什么)。所以我的样式里面我加了一个

<item name="windowBackground">@null</item>

为了减少绘制的像素数,这是阻碍我的事情。谁知道。

关于android - 为什么 FragmentTransaction 偶尔工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com