TabLayout相信很多人都知道并且用過。一個很不錯的Tab切換View,但是也存在一定問題。就是indicator(訓示器)不能修改長短。這個功能讓人很無語。關于這個問題的修改,網上有很多神仙方案。但是各有利弊。
是以。今天就來說一下 SlidingTabLayout,據說是google官方推薦的tab切換View。
好,不多說,老夫就是一把梭。直接上代碼。
1、首先導入依賴
implementation ‘com.flyco.tablayout:FlycoTabLayout_Lib:[email protected]’
2、在xml中添加view
<com.flyco.tablayout.SlidingTabLayout
android:id="@+id/smart"
android:layout_width="match_parent"
android:layout_height="50dp"/>
3、在activity中的用法
private ViewPager viewPager;
smartTabLayout = findViewById(R.id.smart);
smartTabLayout.setViewPager(viewPager);//綁定tab和viewPager
其實到這。初步的搭建就已經算完成了。至于viewPager相關的。就不多做贅述了。
下面是重頭戲。SlidingTabLayout相關的屬性。具體業務可根據屬性自行訂制。
屬性 | 格式 | 描述 |
---|---|---|
tl_indicator_color | color | 設定訓示器顔色 |
tl_indicator_height | dimension | 設定訓示器高度 |
tl_indicator_width | dimension | 設定訓示器固定寬度 |
tl_indicator_margin_left | dimension | 設定訓示器margin,當indicator_width大于0,無效 |
tl_indicator_margin_top | dimension | 設定訓示器margin,當indicator_width大于0,無效 |
tl_indicator_margin_right | dimension | 設定訓示器margin,當indicator_width大于0,無效 |
tl_indicator_margin_bottom | dimension | 設定訓示器margin,當indicator_width大于0,無效 |
tl_indicator_corner_radius | dimension | 設定訓示器圓角弧度 |
tl_indicator_gravity | enum | 設定訓示器上方(TOP)還是下方(BOTTOM),隻對正常訓示器有用 |
tl_indicator_style | enum | 設定訓示器為正常(NORMAL)或三角形(TRIANGLE)或背景色塊(BLOCK) |
tl_underline_color | color | 設定下劃線顔色 |
tl_underline_height | dimension | 設定下劃線高度 |
tl_underline_gravity | enum | 設定下劃線上方(TOP)還是下方(BOTTOM) |
tl_divider_color | color | 設定分割線顔色 |
tl_divider_width | dimension | 設定分割線寬度 |
tl_divider_padding | dimension | 設定分割線的paddingTop和paddingBottom |
tl_tab_padding | dimension | 設定tab的paddingLeft和paddingRight |
tl_tab_space_equal | boolean | 設定tab大小等分 |
tl_tab_width | dimension | 設定tab固定大小 |
tl_textsize | dimension | 設定字型大小 |
tl_textSelectColor | color | 設定字型選中顔色 |
tl_textUnselectColor | color | 設定字型未選中顔色 |
tl_textBold | boolean | 設定字型加粗 |
END