ViewFlipper的简单使用

150 阅读1分钟

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的简单使用教程,有兴趣的还可以深入挖掘一下。