首页 > 解决方案 > 在 ViewPager 中显示 lottiefiles

问题描述

我的viewpager中有4个片段,我试图显示一个lottiefile,第一个可以使用动画但第二个没有动画,viewpager同时加载2个片段,所以我的问题是有什么方法可以阻止viewpager加载只有可见片段有动画?我试过setUserVisibleHint但它已被弃用

我的片段代码(我在 AndroidX 上):

public static class PlaceholderFragment extends Fragment {

        private static final String ARG_SECTION_NUMBER = "section_number";


        public PlaceholderFragment() {
            //
        }


        public static PlaceholderFragment newInstance(int sectionNumber) {
            PlaceholderFragment fragment = new PlaceholderFragment();
            Bundle args = new Bundle();
            args.putInt(ARG_SECTION_NUMBER, sectionNumber);
            fragment.setArguments(args);
            return fragment;
        }



        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_pager, container, false);
            TextView sectionLabel = (TextView) rootView.findViewById(R.id.section_label);
            TextView sectionDetails = (TextView) rootView.findViewById(R.id.section_details);
            LottieAnimationView img = (LottieAnimationView) rootView.findViewById(R.id.section_img);


            String[] titles = new String[]{getActivity().getString(R.string.onboarding_explore),getActivity().getString(R.string.onboarding_connect),
                    getActivity().getString(R.string.onboarding_notified), getActivity().getString(R.string.onboarding_create)};
            String[] details = new String[]{getActivity().getString(R.string.onboarding_explore_desc),getActivity().getString(R.string.onboarding_connect_desc)
                    , getActivity().getString(R.string.onboarding_notified_desc), getActivity().getString(R.string.onboarding_create_desc)};


            int[] bgs = new int[]{R.raw.explore, R.raw.connect
                    ,  R.raw.notifications ,  R.raw.places};
            img.setAnimation(bgs[getArguments().getInt(ARG_SECTION_NUMBER) - 1]);
            img.playAnimation();
            sectionLabel.setText(titles[getArguments().getInt(ARG_SECTION_NUMBER) - 1]);
            sectionDetails.setText(details[getArguments().getInt(ARG_SECTION_NUMBER) - 1]);

            return rootView;
        }


    }

标签: androidandroid-fragmentsandroid-viewpagerlottie

解决方案


推荐阅读