ViewFlipper是Android的一个基础控件,一般开发不常使用得到,在使用上也比较简单。 下面以上下滚动的通知列表为例,说一下基础的使用方法。
一、ViewFlipper的布局
<ViewFlipper
android:id="@+id/viewFliper"
android:layout_width="match_parent"
android:layout_height="116.5dp"
android:autoStart="true"
android:flipInterval="2000"
android:inAnimation="@anim/anim_come_in"
android:outAnimation="@anim/anim_come_out"/>
进入动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromYDelta="100%p"
android:toYDelta="0" />
<alpha
android:duration = "500"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>
滑出动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromYDelta="0"
android:toYDelta="-100%" />
<alpha
android:duration = "500"
android:fromAlpha="1.0"
android:toAlpha="0.0"/>
</set>
二、代码调用
var noticeList = mutableListOf("test1","通知1","哈哈","呆头鹅","霸天虎")
var i = 0
while (i<noticeList.size){
itemView.findViewById<TextView>(R.id.tvTitle).text = noticeList[i]
viewFliper.addView(itemView)
i = i++
}
viewFliper.startFlipping()
这样就可以实现图中的效果了。需要说明的是,ViewFlipper既可以通过viewFliper.addView()方法,用代码添加子view,也可以在xml中添加子View.
三、相关属性方法
xml布局中的方法介绍:
android:autoStart: 设置自动加载下一个View
android:flipInterval:设置View之间切换的时间间隔
android:inAnimation: 设置切换View的进入动画
android:outAnimation:设置切换View的退出动画
同样的可以通过方法来设置相关属性:
isFlipping: 判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔
startFlipping: 开始View的切换,而且会循环进行
stopFlipping: 停止View的切换
setOutAnimation:设置切换View的退出动画
setInAnimation: 设置切换View的进入动画
showNext: 显示ViewFlipper里的下一个View
showPrevious: 显示ViewFlipper里的上一个View
四、总结
以上就是ViewFlipper的简单使用教程,有兴趣的还可以深入挖掘一下。