ViewPager设置展示多个item页面

本文介绍了如何使用ViewPager展示多个item页面,提供了两种不同的效果实现:1) 两边留白的展示方式,通过在布局代码中设置等值margin实现;2) 只展示一边的效果,只需调整布局的margin设置。同时,提到了适配器代码在实现过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键代码实现

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

第一种效果:

是两边都留白

布局代码:

<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即可

第二种效果:

只展示一边,只需要把布局的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;
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值