实现效果
添加依赖
在settings.grale中的repositories中添加地址:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
然后将包引入:
dependencies {
...
implementation 'com.github.Chrisvin:FlipTabs:v1.5'
}
注意!要在gradle.properties文件中添加一句代码:
android.enableJetifier=true
这句话的作用是将旧版 Android Support 库中的类重定向到 AndroidX 库中相应的类,以便在使用最新版本的库时保持向后兼容性。这个选项会自动更新你的项目中的第三方库,并更改它们的依赖关系,以适应 AndroidX 库。
实现功能
在XML布局文件中写入:
<!--
我使用的部分属性用途(个人理解):
app:startingTab="left" 默认显示的选择卡
app:removeDefaultPadding="false" 'FlipTab'在所有方面都有一个16dp的默认填充,以确保翻转动画的空间
app:overallColor="@color/purple_500" 设置选择卡全局颜色
app:flipAnimationDuration="400" 翻转动画持续时间
app:wobbleReturnAnimationDuration="200" 摆动返回动画持续时间
app:wobbleAngle="3" 摆动角
-->
<com.jem.fliptabs.FlipTab
android:id="@+id/ft1"
android:layout_height="wrap_content"
android:layout_width="250dp"
android:layout_gravity="center"
app:leftTabText="Photos"
app:rightTabText="Videos"
app:startingTab="left"
app:removeDefaultPadding="false"
app:overallColor="@color/purple_500"
app:flipAnimationDuration="400"
app:wobbleReturnAnimationDuration="200"
app:wobbleAngle="3"/>
<!--
还可选择的其他属性(个人理解):
app:textColor="#FF0000" 文本颜色,如果定义了全局颜色将会被忽略
app:highlightColor="#FF0000" 突出显示颜色,如果定义了全局颜色将会被忽略
app:borderWidth="4dp" 边框宽度,默认边框宽度为2dp
-->
实例化后在Java文件中设置监听事件:
FlipTab fliptab = (FlipTab)findViewById(R.id.ft1);
fliptab.setTabSelectedListener(new FlipTab.TabSelectedListener() {
@Override
public void onTabSelected(boolean isLeftTab, String tabTextValue) {
Toast.makeText(MainActivity.this, (isLeftTab ? "Left" : "Right") + " tab selected", Toast.LENGTH_SHORT).show();
}
//这个是选择方法,isLeftTab的布尔值来判断选择的是左还是右
@Override
public void onTabReselected(boolean isLeftTab, String tabTextValue) {
Toast.makeText(MainActivity.this, (isLeftTab ? "Left" : "Right") + " tab reselected", Toast.LENGTH_SHORT).show();
}
//这个是选择后再次点击方法,不需要可以放着不写实现代码
});
结语
还可以在Java代码中实现其属性操作,有兴趣的可以去作者主页查看。
FlipTabs作者GitHub地址:https://github.com/Chrisvin/FlipTabs