欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ViewPager设置展示多个item页面

程序员文章站 2022-06-09 20:26:35
...

关键代码实现

 ContentPagerAdapter adapter=new ContentPagerAdapter(listViews);
                    customViewPager.setPageMargin(DisplayUtil.dp2px(getActivity(),25));//设置间距
                    customViewPager.setOffscreenPageLimit(listViews.size());
                    customViewPager.setAdapter(adapter);

第一种效果:

ViewPager设置展示多个item页面

是两边都留白

布局代码:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <com.yangfan.widget.CustomBannerView
            android:id="@+id/bannerView"
            style="@style/CustomBannerView"
            android:layout_width="match_parent"
            android:layout_height="210dp" />

        <FrameLayout
            android:layout_marginBottom="@dimen/padding_15"
            android:layout_marginTop="@dimen/padding_15"
            android:clipChildren="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.yangfan.widget.CustomViewPager
                android:id="@+id/home_content_vp"
                android:layout_width="match_parent"
                android:layout_marginLeft="@dimen/padding_50"
                android:layout_marginRight="@dimen/padding_50"
                android:clipChildren="false"
                android:layout_height="350dp" />
        </FrameLayout>
    </LinearLayout>

左右设置等值margin即可

第二种效果:

ViewPager设置展示多个item页面

只展示一边,只需要把布局的margin改变一下即可

布局代码:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <com.yangfan.widget.CustomBannerView
            android:id="@+id/bannerView"
            style="@style/CustomBannerView"
            android:layout_width="match_parent"
            android:layout_height="210dp" />

        <FrameLayout
            android:layout_marginBottom="@dimen/padding_15"
            android:layout_marginTop="@dimen/padding_15"
            android:clipChildren="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.yangfan.widget.CustomViewPager
                android:id="@+id/home_content_vp"
                android:layout_width="match_parent"
                android:layout_marginLeft="@dimen/padding_25"
                android:layout_marginRight="@dimen/padding_50"
                android:clipChildren="false"
                android:layout_height="350dp" />
        </FrameLayout>
    </LinearLayout>

适配器代码

class ContentPagerAdapter extends PagerAdapter{

        private List<View> list;

        public ContentPagerAdapter(List<View> list) {
            this.list = list;
        }

        @Override
        public int getCount() {
            return list==null?0:list.size();
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            container.addView(list.get(position));
            return list.get(position);
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView(list.get(position));
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }
    }

 

相关标签: viewpager