ClipToPadding

我們在刻ui時常常會遇到一個問題,設計希望我們在滑動的時候滑到最下面時會有個padding(圖1)

圖1

但是我們刻出來的卻總是會是(圖2)

圖2

如果沒有仔細看,其實看不太出來兩張圖的差別,其實就是第一張圖當往下滑動到底的時候paddingBottom才會出現,而第二張圖是一直都有paddingBottom

其實當出現這樣的要求時,很多人第一個想到的解法就是塞一個空的viewholder,這樣就可以完成要求,但是如果今天是gridview的情況下,這就不好了,還必須先判斷最後一項是一個還是兩個,根據不同的情況去做不同的處理….

所以,今天就要講一個簡單的解法,也就是

android:clipToPadding="false"

我們只需要在layout上面使用這個property,然後在我們希望留空格的地方加上padding,以上面的例子就是paddingBottom就完成了!!

那….clipToPadding到底是什麼意思呢?

Defines whether the ViewGroup will clip its children and resize (but not clip) any EdgeEffect to its padding, if padding is not zero.

我相信看完上面這句話之後你還是不懂是什麼意思…
我也是苦主,所以我就去翻了一下sourceCode,從sourceCode的意思就是,當你的view 還沒有到底以前padding 永遠是0,到底部就會變成你設定的padding.

舉個例子:如果設定paddingTop + paddingBottom 你的recyclerview在滑到最上面的時候就會有paddingTop,當滑到中間的item時就沒有paddingTop,當滑到最後面的時候才會有paddingBottom,用說的太難理解,還是看圖吧.

最後,其實這是material design 其中一個要求,大家可以回去試試看~

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.