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