java.lang.RuntimeException : Unknown layout animation name: set

标签 java android xml animation

我正在尝试设置动画。代码编译得很好,但是应用程序在启动后崩溃,显示以下错误;

java.lang.RuntimeException: Unknown layout animation name: set

在我添加动画之前,一切都正常工作,但我无法真正弄清楚问题是什么。 我将链接整个 Logcat、XML 动画和 HomeFragment(应用动画的地方)。我尝试了开发人员文档,但这对我没有帮助...... 那么我能做些什么来解决这个问题呢? 感谢您的帮助。

日志猫

10-30 22:08:30.011 26013-26013/com.example.login E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.login, PID: 26013
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.login/com.example.login.HomeActivity}: java.lang.RuntimeException: Unknown layout animation name: set
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2464)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
        at android.app.ActivityThread.access$900(ActivityThread.java:154)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:234)
        at android.app.ActivityThread.main(ActivityThread.java:5526)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.RuntimeException: Unknown layout animation name: set
        at android.view.animation.AnimationUtils.createLayoutAnimationFromXml(AnimationUtils.java:198)
        at android.view.animation.AnimationUtils.createLayoutAnimationFromXml(AnimationUtils.java:173)
        at android.view.animation.AnimationUtils.loadLayoutAnimation(AnimationUtils.java:154)
        at com.example.login.ui.home.HomeFragment.init(HomeFragment.java:64)
        at com.example.login.ui.home.HomeFragment.onCreateView(HomeFragment.java:48)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
        at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2646)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2416)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2372)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
        at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2466)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1483)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1238)
        at android.app.Activity.performStart(Activity.java:6302)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2427)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524) 
        at android.app.ActivityThread.access$900(ActivityThread.java:154) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:234) 
        at android.app.ActivityThread.main(ActivityThread.java:5526) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

主页 fragment

public class HomeFragment extends Fragment {

    private HomeViewModel homeViewModel;

    Unbinder unbinder;

    @BindView(R.id.recycler_popular)
    RecyclerView recycler_popular;
    @BindView(R.id.viewpager)
    LoopingViewPager viewPager;

    LayoutAnimationController layoutAnimationController;

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
        View root =inflater.inflate(R.layout.fragment_home,container,false);
        unbinder= ButterKnife.bind(this,root);
        init();
        homeViewModel.getPopularList().observe(this,popularCategoryModels ->{
            //Create Adapter
            MyPopularCategoriesAdapter adapter=new MyPopularCategoriesAdapter(getContext(),popularCategoryModels);
            recycler_popular.setAdapter(adapter);
            recycler_popular.setLayoutAnimation(layoutAnimationController);
        });

        homeViewModel.getBestDealList().observe(this,bestDealModels -> {
            MyBestDealsAdapter adapter = new MyBestDealsAdapter(getContext(),bestDealModels,true);
            viewPager.setAdapter(adapter);
        });
        return root;
    }

    private void init() {
        layoutAnimationController= AnimationUtils.loadLayoutAnimation(getContext(),R.anim.layout_item_from_left);
        recycler_popular.setHasFixedSize(true);
        recycler_popular.setLayoutManager(new LinearLayoutManager(getContext(),RecyclerView.HORIZONTAL,false));

    }
    @Override
    public void onResume(){
        super.onResume();
        viewPager.resumeAutoScroll();
    }
    @Override
    public void onPause(){
        viewPager.pauseAutoScroll();
        super.onPause();

    }

}

item_animation_from_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1500">

    <translate
        android:fromXDelta="-100%"
        android:toYDelta="0"
        android:interpolator="@android:anim/decelerate_interpolator"/>

    <alpha
        android:fromAlpha="0"
        android:toAlpha="1"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>

</set>

layout_item_from_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1500">

    <translate
        android:fromXDelta="-100%"
        android:toYDelta="0"
        android:interpolator="@android:anim/decelerate_interpolator"/>

    <alpha
        android:fromAlpha="0"
        android:toAlpha="1"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>

</set>

最佳答案

当您使用AnimationUtils.loadLayoutAnimation时,您需要像这样定义您的xml:

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:animation="@anim/slide_in_bottom_groupviews"
    android:animationOrder="normal"
    android:delay="20%"
    />

换句话说,您需要在 xml 中使用layoutAnimation 标记,然后您可以在其中加载动画。

本文中的更多信息:https://proandroiddev.com/enter-animation-using-recyclerview-and-layoutanimation-part-1-list-75a874a5d213

关于java.lang.RuntimeException : Unknown layout animation name: set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58634237/

相关文章:

Java android AsyncHttpClient 如何设置 header 'Accept' 'application/xml' 或 'application/json'

android - 存储在 XML 下的编码 HTML

java - 动态加载groovy文件中的jar文件,失败的XML解析错误

java - 为什么 Graphics 的绘制方法不考虑笔划属性?

java - 无法启动 GlassFish Server(DAS 端口被占用)

java - 使用volley在Android Studio中调用API(JAVA)

android - 获取错误 "You haven' t 设置分支链接 propoerly"当尝试从分支指标打开链接时?

xml - XSD 中的条件必需元素

java - Android:FloatingActionButton 单击事件不起作用

java - 如何解决aosp中不允许的明文