第一次写博客,也只是写给自己看,记录一下我的学习过程。
TabLayout是Design库里的,在我查阅许多资料后,发现原来这么好用,在此之前一直一是小白一个。
在使用之前需要现在Android的build.gradle添加依赖。
build.gradle添加dependencies依赖
compile 'com.android.support:design:22.2.0'
其中22.2.0是design库的版本号对应自己的SDK版本就好了。比如
compileSdkVersion 25 SDK版本号是25
所以应该是
compile 'com.android.support:design:25.2.0'
1.在布局中需要添加TLayout控件
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
2.可以添加许多自定义属性,可以参考以下这篇文章
Design库-TabLayout属性详解
点击打开链接
3.更改背景为自定义颜色
第一步
在drawable文件夹下建立文件 tab_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/tab_background_selected" android:state_selected="true" />
<item android:drawable="@drawable/tab_background_unselected" android:state_selected="false" android:state_focused="false" android:state_pressed="false" />
</selector>
第二步
在drawable文件夹下建立选中效果的文件 tab_background_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#d13fdd1a" />
</shape>
第三步
在drawable文件夹下建立未选中效果的文件 tab_background_unselected.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#3F51B5" />
</shape>
最后
建立一个style
<style name="Base.Widget.Design.TabLayout" parent="android:Widget"> <item name="tabBackground">@drawable/tab_background</item> <item name="tabTextColor">#CDCDB4</item> <item name="tabIndicatorColor">#ff00ff</item> <item name="tabIndicatorHeight">2dp</item> </style>
Activity代码:public class MainActivity extends AppCompatActivity { private String[] tabTitleArray = {"直播", "推荐", "追番", "分区", "动态", "发现"}; private TabLayout tabLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tabLayout=(TabLayout)findViewById(R.id.tablayout); for (int i = 0; i < tabTitleArray.length; i++) { tabLayout.addTab(tabLayout.newTab().setText(tabTitleArray[i])); } }