Getting [Andrews] ViewPager2 basis of use

Use previous projects over ViewPager, the pit several times. If you use ViewPager in RecyclerView the Item, you will have absolutely baffling problem, because ViewPager can not have two of the same ID on the same interface, otherwise it will lead to sliding and memory problems.

 

The easiest to use

ViewPager2 internal use RecyclerView, the simplest usage is to set a Adapter can be used immediately following ViewPager2 default horizontal scrolling:

        ViewPager2 uiVisitorPager2 = mRootView.findViewById(R.id.uiVisitorPager2);
        uiVisitorPager2.setAdapter(new RecyclerView.Adapter() {
            @NonNull
            @Override
            public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View item = View.inflate(parent.getContext(), R.layout.face_item_domicile, null);
                ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                item.setLayoutParams(lp);
                RecyclerView.ViewHolder vh = new RecyclerView.ViewHolder(item){};
                return vh;
            }

            @Override
            public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {

            }

            @Override
            public int getItemCount() {
                return 10;
            }
        });

 

Noted the above manually set LayoutParams, otherwise they will be thrown:

 java.lang.IllegalStateException: Pages must fill the whole ViewPager2 (use match_parent)

Guess you like

Origin www.cnblogs.com/nicojerry/p/11274917.html