viewpager的滑动

在一个已经是月黑风高快下班的时刻了,我们产品突然通知我们开会,要添加一个功能,他闲来无聊随便戳了戳facebook,说点开联系人的那个横向滑动的卡片式的效果不错,让我们在我们的app里添加这个效果,我的天。。。

这如何实现,能滑动的我能想到的也就是viewpager了,但是那个界面显示的是一屏幕显示仨界面,就在我年幼时都不知道这如何百度,这个效果是啥,经过我不懈的努力终于知道了。。。

大概效果是这样。。。

                                                               

大概就这丑样子。。。

瞅瞅代码吧,先看xml文件activity_main2

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

                android:id="@+id/linear_parent"

                android:layout_width="match_parent"

                android:layout_height="match_parent"

                android:clipChildren="false"

                android:layerType="software">

    <android.support.v4.view.ViewPager

        android:id="@+id/vp_wifi_list"

        android:layout_width="280dp"

        android:layout_height="400dp"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:background="@drawable/selector_wifi_viewpager_bg"

        android:clipChildren="false"/>

</RelativeLayout>


重头戏看这里:父布局一定要加这俩属性!

android:clipChildren="false"<父控件里设置,这个属性是限制子控件大小,默认是true,也就是限制,这里需要手动设置成false,通俗点儿说

就是就是说对于子元素来说,超出当前view的部分都会被切掉,那我们在这里把它设置成false,就是让超出view的部分,不要切掉>

android:layerType="software"<父控件里设置,这个属性是设置层的属性为软件层,因为从android4.0之后,android是默认启动硬件加速的,

而硬件加速对clip等操作是有影响的,会有问题,所以如果我们在自定义View样式中,用到clip等操作,对于android4.0以上的版本,我们需要将它的

硬件加速关掉>

代码里是这样:

  // 可显示的界面个数

  mViewPager.setOffscreenPageLimit(3);

  // 每个页面之间的距离

  mViewPager.setPageMargin(20);

  // 设置adapter

  mViewPager.setAdapter(new ViewPagerAdapter(mViews));

可以了就这么简单。。。

原文地址:https://www.cnblogs.com/bobohaohao/p/5891773.html