使用ViewFlipper 实现条目向上滚动功能
1、布局
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:flipInterval="150"
android:inAnimation="@anim/notice_in"
android:outAnimation="@anim/notice_out">
<TextView
android:id="@+id/tvOriginal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="0.01" />
</ViewFlipper>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="元" />
</LinearLayout>
2、新建动画文件 notice_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="100"
android:fromYDelta="0.0"
android:toYDelta="-100.0%p"/>
<alpha
android:duration="100"
android:fromAlpha="1.0"
android:toAlpha="0.0"/>
</set>
3、新建动画文件 notice_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="100"
android:fromYDelta="100.0%p"
android:toYDelta="0.0"/>
<alpha
android:duration="100"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>
4、代码控制
public void startFlipping() {
final ViewFlipper flipper = findViewById(R.id.flipper);
List<String> infos = Arrays.asList("0.01", "0.02", "0.03", "0.04", "0.05");
for (int i = 0; i < infos.size(); i++) {
TextView textView = new TextView(CustomerViewActivity.this);
textView.setText(infos.get(i));
flipper.addView(textView);
}
//开始启动轮播
flipper.startFlipping();
//监听禁止循环轮播
flipper.getInAnimation().setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
int displayedChild = flipper.getDisplayedChild();
int childCount = flipper.getChildCount();
if (displayedChild == childCount - 1) {
flipper.stopFlipping();
}
}
});
}
简简单单不好吗,非得搞得多复杂!