本文主要是介绍java.lang.IllegalStateException: Cannot start this animator on a detached view!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
java.lang.IllegalStateException: Cannot start this animator on a detached view!
在使用fragment添加添加新特新动画的时候,报这个错了,解决方法如下:
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){// Inflate the layout for this fragmentfinal View view = inflater.inflate(R.layout.fragment_map_list, container, false);if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {@TargetApi(Build.VERSION_CODES.LOLLIPOP)@Overridepublic void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {v.removeOnLayoutChangeListener(this);//进行自己的动画操作toggleInformationView(view);}});}return view;}
private void toggleInformationView(View view) {infoContainer = view.findViewById(R.id.contact_card);int cx = (view.getLeft() + view.getRight()) / 2;int cy = (view.getTop() + view.getBottom()) / 2;float radius = Math.max(infoContainer.getWidth(), infoContainer.getHeight()) * 2.0f;if (infoContainer.getVisibility() == View.INVISIBLE) {infoContainer.setVisibility(View.VISIBLE);ViewAnimationUtils.createCircularReveal(infoContainer, cx, cy, 0, radius).start();} else {Animator reveal = ViewAnimationUtils.createCircularReveal(infoContainer, cx, cy, radius, 0);reveal.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator animation) {infoContainer.setVisibility(View.INVISIBLE);}});reveal.start();}}
原文来自于:http://stackoverflow.com/questions/26819429/cannot-start-this-animator-on-a-detached-view-reveal-effect
这篇关于java.lang.IllegalStateException: Cannot start this animator on a detached view!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!