日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TabLayout实现标签切换

發布時間:2023/12/29 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TabLayout实现标签切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 通常我們有這樣一個需求,需要實現多個標簽的切換,實現指示器背景色的改變,可以使用系統提供的TabLayout來實現。

? ? ? 一、首先我們在xml定義一個tablayout文件

<android.support.design.widget.TabLayoutandroid:id="@+id/tabLayout"android:layout_width="500dp"android:layout_height="50dp"android:background="@drawable/tab_bg"android:elevation="3dp"app:tabGravity="fill"app:tabIndicator="@drawable/tab_sel"app:tabIndicatorColor="@android:color/blue"app:tabIndicatorGravity="center"app:tabRippleColor="@android:color/transparent"app:tabTextAppearance="@style/tabLayoutTextStyle"app:tabTextColor="@android:color/white"></android.support.design.widget.TabLayout>

app:tabIndicator? ? tab指示器的背景圖片

app:tabIndicatorColor? ? tab指示器的顏色

app:tabIndicatorGravity? ?指示器居中

app:tabRippleColor="@android:color/transparent"? ?取消指示器點擊波紋效果

app:tabTextColor="@android:color/white"? ?tab的文字顏色

app:tabTextAppearance="@style/tabLayoutTextStyle"? ?這個是設置tab的文字大小,只能通過此方法,如下:

<style name="tabLayoutTextStyle"><item name="android:textSize">28sp</item></style>

二、在onCreate()進行初始化

tabLayout.addTab(tabLayout.newTab().setText("成都"));//設置true為默認選中,不然第一次點擊tablayout不會回調監聽方法tabLayout.addTab(tabLayout.newTab().setText("重慶"), true);tabLayout.addTab(tabLayout.newTab().setText("上海"));//默認選中的tabtabLayout.setScrollPosition(1, 0, false);tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {int position = tab.getPosition();switch (position) {case 0: //修改指示器的顏色 tabLayout.setSelectedTabIndicatorColor(getResources().getColor(R.color.007a67)); //修改指示器背景圖片tabLayout.setSelectedTabIndicator(R.drawable.tab_sel_1);case 1:tabLayout.setSelectedTabIndicatorColor(getResources().getColor(R.color.065eab));tabLayout.setSelectedTabIndicator(R.drawable.tab_sel_2);break;case 2:tabLayout.setSelectedTabIndicatorColor(getResources().getColor(R.color.6f5a0f));tabLayout.setSelectedTabIndicator(R.drawable.tab_sel_3);break;}}@Overridepublic void onTabUnselected(TabLayout.Tab tab) {}@Overridepublic void onTabReselected(TabLayout.Tab tab) {}});

? ? ? ? ?這樣基本能滿足我們的需求了。但是可能有小伙伴注意到了,通過tabLayout.setSelectedTabIndicator(Drawable drawable);方法,我們只能把tab的標簽設置成跟圖片一樣的形狀,顏色并不是跟我們的圖片一樣,只能通過setSelectedTabIndicatorColor設置tab的背景顏色。而且TabLayout只能修改所有tab的文字顏色,如果我們需要改變單獨某個tab的文字顏色,或者將指示器的背景使用圖片,并在某些狀態下tab還不能被選中呢,這樣我們就只能使用自定義view來實現了,以后我會再開一篇文章給大家講解。

總結

以上是生活随笔為你收集整理的TabLayout实现标签切换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。