gpt4 book ai didi

android - 在动画完成之前调用 fragment onDestroyView()

转载 作者:太空狗 更新时间:2023-10-29 15:10:13 26 4
gpt4 key购买 nike

应客户的要求,我尝试使用 Android 的 FragmentManager/FragmentTransaction 框架和 setCustomAnimations() 方法实现过渡动画。

一切正常,除了从返回堆栈中弹出 fragment 时 - onDestroyView() 会在 fragment 被弹出时立即被调用, fragment 的 subview 会立即从布局中移除.

这意味着在前面的 fragment 完成动画显示之前有黑色闪光(弹出 fragment 的背景色),这有点难看。

关于如何强制弹出的 fragment 在过渡动画完成之前保留其 View 层次结构的任何想法?

最佳答案

我遇到了同样的问题。

我发现 ondestoryview() 在动画开始时被调用,ondestory() 在结束时被调用。

所以我将一些代码从 ondestoryview() 移到了 ondestory()。

另一种解决方案:在您的 onDestoryView() 中添加这些代码:

View v = getView();
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.RGB_565);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getWidth(), v.getHeight());
v.draw(c);
BitmapDrawable bd = new BitmapDrawable(ProviderFactory.getContext().getResources(), b);
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
getActivity().findViewById(R.id.fragment_container).setBackgroundDrawable(bd);
} else {
getActivity().findViewById(R.id.fragment_container).setBackground(bd);
}

关于android - 在动画完成之前调用 fragment onDestroyView(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480415/

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