效果圖
代碼實現(xiàn)
實現(xiàn)效果有兩種:
1.重寫PagerAdapter的getPageWidth()方法
@Override
public float getPageWidth(int position) {
return (float)0.8;
}
該方法返回結(jié)果默認為1.0界阁,其效果為ViewPager的Item占滿整個ViewPager控件的寬度,如果我們將返回的結(jié)果重寫為小于1的數(shù)胖喳,則Item會相對默認效果變小泡躯,兩邊的Item也會相應地靠近過來,從而來到屏幕可見的區(qū)域丽焊,實現(xiàn)了我們想要的效果较剃。
2.布局參數(shù)設置
這里我們設置的參數(shù)有點雜亂,我們分塊來看:
【xml-ViewPager】
代碼如下:
android:layout_marginLeft="xx"
android:layout_marginRight="xx"
android:clipChildren="false"
【xml-ViewPager的父容器】
代碼如下:
android:clipChildren="false"
android:layerType="software"
【java-viewPager】
代碼如下:
viewPager.setOffscreenPageLimit(4);
viewPager.setPageMargin(xxx);
知其然技健,知其所以然写穴!我們來看看其中的原理:
android:clipChildren表示是否限制子View在其范圍內(nèi),如果clipChildren屬性設置為true,就表明我們要將children給clip掉雌贱,就是說對于子元素來說啊送,超出當前view的部分都會被切掉,所以我們需要將clipChidren設置為false欣孤。
setClipChildren(false)在3.0以上版本中馋没,開啟了硬件加速后將不能 正常工作,所以需要將其設置為軟件加速降传。即:android:layerType="software"篷朵。
注意一下:PAGE_MARGIN的間距要小于 VIEW_PAGER_MARGIN的間距才可以實現(xiàn)一屏多View的效果。
實現(xiàn)居中
有的時候婆排,我們?yōu)榱撕每瓷胍獙⑽覀兊膇tem實現(xiàn)居中。實現(xiàn)居中的方法很靈活段只,這里說一個比較接地氣的方法:
ViewPager寬度設置為MATCH_PARENT艾少,橫向間距設置相同寬度。
如果你覺得我的文章可以給你帶來幫助翼悴,希望你用點贊來留下你的足跡,謝謝幔妨!
PS: 有錢的大爺請打個賞唄鹦赎!