ViewFlipper是Android中的基础控件,可能在一般开发中很少有人用到,所以很多开发者感觉对这个控件很陌生,在控件圈里更远远没有ViewPager出名,但是ViewFlipper用法很简单,效果却很不错。
ViewFlipper常用方法
setInAnimation:设置View进入屏幕时候使用的动画
setOutAnimation:设置View退出 屏幕时候使用的动画
showNext:调用该函数来显示ViewFlipper里面的下一个View
showPrevious:调用该函数来显示ViewFlipper里面的上一个View
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会
循环进行
stopFlipping:停止View切换
布局引入
<ViewFlipper
android:id="@+id/tv_notify"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_16"
android:layout_marginLeft="@dimen/dp_8" />
进出场动画设置
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
>
<translate android:fromYDelta="100%p" android:toYDelta="0" />
<alpha android:fromAlpha="0" android:toAlpha="1"/>
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
>
<translate android:fromYDelta="0" android:toYDelta="100%p"/>
<alpha android:fromAlpha="1" android:toAlpha="0"/>
</set>
界面使用 以下是项目中的Kotlin模块
override fun getIndexReturn(result: MainBean) {
val notice_list = result.data!!.notice_list
// 设置动画
tv_notify.setInAnimation(context,R.anim.flipper_in)
tv_notify.setOutAnimation(context,R.anim.flipper_out)
for(i : MainBean.DataBean.NoticeListBean in notice_list!!){
// 创建一个textView
var tv:TextView= TextView(context)
tv.setText(i.title)
// 在flipper里添加这个textView
tv_notify.addView(tv)
tv_notify.showNext()
// 监听每次创建的TextView即可
tv.setOnClickListener(View.OnClickListener {
Toast.makeText(context,"123"+tv.text.toString(),Toast.LENGTH_LONG).show()
})
}
// 启动 循环执行
tv_notify.startFlipping()
}
ViewFlipper是不需要导包的 直接就可用
还有MarqueeView 也可以实现效果
需要导入依赖 compile 'com.sunfusheng:marqueeview:1.3.2' 具体细节baidu