點擊Android 中Tablayout 的各個Tab時,ripple效果的水波紋范圍問題

一: 實現的目標

點擊Android 中Tablayout 的各個Tab時,有ripple(水波紋)效果,并且水波紋范圍并不局限于Tab的寬高,即下面的無界波紋

二:解決探索:

經過Google 發現,Android 5.0 以上 ripple 效果的使用大致為以下[1]

所以使用Ripple的關鍵就在android:backgroud中設置。

點擊效果主要分為2類:

?一 : 有邊界波紋:寫法如下

android:background="?android:attr/selectableItemBackground"

?二 : 無邊界波紋(波紋的大小不局限于目標View的大小):寫法如下

android:background="?android:attr/selectableItemBackgroundBorderless"

原本想,這么簡單,直接設置到Tablayout的 Tab 的 CustomView 中的根布局就好了。

結果發現,這么做都不行。ripple的效果是有了,但是ripple的范圍是局限在每個Tab的大小之內

最后發現這種做法不可行。懷疑與 Tablayout 有關,最后google發現可以通過如下方法解決[2]

主要是設置在TabLayout 的??app:tabBackground="?attr/selectableItemBackground"?? 屬性上

<android.support.design.widget.TabLayout

android:id="@+id/tab_layout"

android:minHeight="?attr/actionBarSize"

android:layout_width="match_parent"

app:tabBackground="?attr/selectableItemBackground"

android:layout_height="wrap_content"/>

親測可以。

[1].?Android UI效果篇-(1)Ripple

[2].?https://stackoverflow.com/questions/31605514/tablayout-highlite-and-ripple-effect

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。