ViewPager為相鄰頁面設置間距並配置背景色出現白色細線問題的解決方案


問題概述

我們都知道,ViewPager可以通過如下方式為相鄰頁面設置間距:
pager.setPageMargin(55)
此時,相鄰頁面會出現一個55px的間距,間距的背景色默認為白色。
通常情況下,默認的白色背景並不能滿足項目的需求,當然,android開發者也考慮到了這一點,所以他們提供了一個方法來設置這個顏色:
pager.setPageMarginDrawable(R.color.black)
這樣,ViewPager的間距背景就被設置為黑色了。一切看上去都很完美!但是問題也就來了,當你試着去左右滑動切換頁面時,你會發現,有的頁面的邊緣竟然出現了一條極細的白線,如下圖:


這簡直不能忍啊,有木有?間距背景默認為白色的時候,這條細線根本看不到,當顏色設置為黑色的時候,就很明顯了。

分析

如何去掉這惱人的白色細線呢?

第一步:

首先確認ViewPager的每一頁的View布局是否設置有margin值,檢查一遍后, 沒有!!

第二步:

到這里,基本能確定這是ViewPager自身的問題了。那么,我們可以推測, ViewPager在繪制間距的時候由於計算偏差,導致有1dp的寬度沒有繪制。所以這1dp的寬度就顯示成了一條白色細線,而之所以顯示白色是因為ViewPager的默認背景色為白色。

解決方案

前面已經分析了問題產生的可能原因,接下來就是驗證階段了。

既然這條白色細線是由於ViewPager繪制偏差產生的,並且細線的顏色與ViewPager的背景色保持一致。那么,我們為什么不可以將ViewPager的背景色設置為和間距的背景色一致(黑色),從而產生一條黑色的細線,顯然這條黑色的線我們是看不到的嘛!!這樣,不就巧妙解決了問題么??




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com