好久咩写博客了,先随手写一个熟悉熟悉,后期持续博客更新中...
前言:由于一直在使用ReactNative开发,原生代码很少进行开发;正好在做腾讯云聊天服务的一个原生界面,用到了TabLayout;且谷歌的TabLayout指示器Indicator不支持设置图片的形式;所以自己自定义一个指示器,效果好不错;如下图所示:
好了,废话不多说,直接讲解如何实现的方案,具体源码的话,可以去查看TabLayout源码,这里不做具体描述;
首先在布局中引入TabLayout,这里不要引用错了,使用的谷歌的TabLayout:
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_initial"
android:layout_width="match_parent"
android:layout_height="49dp"
app:tabTextColor="#FFFFFF"
android:layout_weight="2"
app:tabIndicator="@drawable/tab_initial_size"
app:tabIndicatorColor="@color/white"
/>
然后在drawable中自定义
layer-list 具体如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <item android:width="31dp" android:height="8dp" android:drawable="@drawable/bar_selection_gray"/>-->
<item
android:width="31dp"
android:gravity="center"
android:drawable="@drawable/bar_selection_gray"
>
<shape>
<solid android:color="#ffffff" />
</shape>
</item>
</layer-list>
将指示器的图片资源换成自己的即可,宽度与高度根据自己的项目代码设置;
最后在引用的TabLayout中设置
tabIndicator将自定义的layer-list进行设置引用! 好了,讲解完了,如有不明白的可进行讨论留言!