gpt4 book ai didi

android - GridLayoutAnimation 不起作用

转载 作者:行者123 更新时间:2023-12-02 18:38:26 25 4
gpt4 key购买 nike

我正在尝试为 GridLayout 启动 GridLayoutAnimation,但它不起作用。请参阅下面的代码:

public class LayoutActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
GridLayout layout = (GridLayout) findViewById(R.id.gridLayout);
GridLayoutAnimationController anim = (GridLayoutAnimationController) AnimationUtils.loadLayoutAnimation(this, R.anim.grid_layout_animation);
layout.setLayoutAnimation(anim);
layout.startLayoutAnimation();
}

}

文件 res/anim/grid_layout_animation.xml

<?xml version="1.0" encoding="utf-8"?>
<gridLayoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@android:anim/fade_in"
android:columnDelay="10%"
android:direction="right_to_left"
android:directionPriority="row" >
</gridLayoutAnimation>

启动后出现异常:

java.lang.ClassCastException: android.view.animation.LayoutAnimationController$AnimationParameters cannot be cast to android.view.animation.GridLayoutAnimationController$AnimationParameters

怎么了?

更新。添加了完整的堆栈跟踪

FATAL EXCEPTION: main
java.lang.ClassCastException: android.view.animation.LayoutAnimationController$AnimationParameters cannot be cast to android.view.animation.GridLayoutAnimationController$AnimationParameters
at android.view.animation.GridLayoutAnimationController.getDelayForView(GridLayoutAnimationController.java:299)
at android.view.animation.LayoutAnimationController.getAnimationForView(LayoutAnimationController.java:321)
at android.view.ViewGroup.bindLayoutAnimation(ViewGroup.java:3523)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2749)
at android.view.View.getDisplayList(View.java:12407)
at android.view.View.getDisplayList(View.java:12453)
at android.view.View.draw(View.java:13182)
at android.view.ViewGroup.drawChild(ViewGroup.java:2929)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2799)
at android.view.View.draw(View.java:13461)
at android.widget.FrameLayout.draw(FrameLayout.java:467)
at android.view.View.getDisplayList(View.java:12409)
at android.view.View.getDisplayList(View.java:12453)
at android.view.View.draw(View.java:13182)
at android.view.ViewGroup.drawChild(ViewGroup.java:2929)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2799)
at android.view.View.getDisplayList(View.java:12407)
at android.view.View.getDisplayList(View.java:12453)
at android.view.View.draw(View.java:13182)
at android.view.ViewGroup.drawChild(ViewGroup.java:2929)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2799)
at android.view.View.draw(View.java:13461)
at android.widget.FrameLayout.draw(FrameLayout.java:467)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2470)
at android.view.View.getDisplayList(View.java:12409)
at android.view.View.getDisplayList(View.java:12453)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1168)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2149)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2021)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1832)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4965)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

问题在于 GridLayoutAnimationController 需要自己的 AnimationParameters,而该参数无法进行类转换。要么它的基类是LayoutAnimationController,但 View 组需要它单独的AnimationParameters。你必须这样做:-

 GridLayoutAnimationController.AnimationParameters anim = (GridLayoutAnimationController.AnimationParameters)(/** Fill Id of Layout or View on which you want to apply the animation **/);

关于android - GridLayoutAnimation 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19264534/

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