Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动画完成之前正在调用片段onDestroyView()_Android_Android Fragments - Fatal编程技术网

Android 动画完成之前正在调用片段onDestroyView()

Android 动画完成之前正在调用片段onDestroyView(),android,android-fragments,Android,Android Fragments,应客户的请求,我正在尝试使用Android的FragmentManager/FragmentTransaction框架和setCustomAnimations()方法模拟“iOS UINavigationController风格”从右到左推送、从左到右弹出的动画,以实现过渡动画 除了从后堆栈中弹出一个片段外,所有操作都很正常-在弹出的片段上会立即调用onDestroyView(),并且片段的子视图会立即从布局中删除 这意味着在前面的片段完成动画进入视图之前,会有一道黑色的闪光(弹出片段的背景色)

应客户的请求,我正在尝试使用Android的
FragmentManager
/
FragmentTransaction
框架和
setCustomAnimations()
方法模拟“iOS UINavigationController风格”从右到左推送、从左到右弹出的动画,以实现过渡动画

除了从后堆栈中弹出一个片段外,所有操作都很正常-在弹出的片段上会立即调用
onDestroyView()
,并且片段的子视图会立即从布局中删除

这意味着在前面的片段完成动画进入视图之前,会有一道黑色的闪光(弹出片段的背景色),这有点难看


关于如何强制弹出的片段保留其视图层次结构直到过渡动画完成,有什么想法吗?

我遇到了同样的问题

我发现ondestoryview()在动画开始时被调用,ondestory()在动画完成时被调用

因此,我将一些代码从ondestoryview()移动到ondestory()

另一个解决方案: 在onDestoryView()中添加以下代码:

View v=getView();
Bitmap b=Bitmap.createBitmap(v.getWidth()、v.getHeight()、Bitmap.Config.RGB_565);
画布c=新画布(b);
v、 布局(0,0,v.getWidth(),v.getHeight());
v、 抽签(c);
BitmapDrawable bd=新的BitmapDrawable(ProviderFactory.getContext().getResources(),b);
int sdk=android.os.Build.VERSION.sdk\u int;
if(sdk
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);
}