这是我的textSwitcher代码:
<TextSwitcher
android:id="@+id/likes_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:inAnimation="@anim/slide_in_likes_counter"
android:outAnimation="@anim/slide_out_likes_counter">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:padding="8dp"
android:textColor="@color/black85"
android:background="#E0E0E0"
android:text="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:padding="8dp"
android:textColor="@color/deep_orange_500"
android:background="#E0E0E0"/>
</TextSwitcher>
它实际上是一个喜欢的按钮。单击“喜欢”后,textSwitcher会向上滑动以显示新的喜欢计数,可以说从0到1。
现在,当您再次单击按钮后已经不一样时,再次单击该按钮时,它将再次向上滑动以显示其从1变为0。
当您与众不同时,是否有办法使其滑落?
该文档并没有说太多:http://developer.android.com/reference/android/widget/TextSwitcher.html
这是slide_in_likes_counter文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="80%p"
android:toYDelta="0" />
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
这是slide_out_likes_counter文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="0"
android:toYDelta="-80%p" />
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
最佳答案
希望您在过去两年中一直没有等待计算机等待答案...
需要4个单独的动画:slide_up_in
和slide_up_out
(在UP方向,您已经实现了)slide_down_in
和slide_down_out
(在DOWN方向)slide_down_in
和slide_down_out
是前两个副本的fromYDelta
和toYDelta
分别反转。
slide_up_in(基于您的slide_in_likes_counter
)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="80%p"
android:toYDelta="0" />
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
slide_up_out(基于您的
slide_in_likes_counter
)<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="0"
android:toYDelta="-80%p" />
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
slide_down_in(新)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="-80%p"
android:toYDelta="0" />
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
slide_down_out(新)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="0"
android:toYDelta="80%p" />
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
在
setText
上调用TextSwitcher
之前,请确保重置输入和输出动画:// Slide up
textSwitcher.setInAnimation(context, R.anim.slide_up_in)
textSwitcher.setOutAnimation(context, R.anim.slide_up_out)
// Slide down
textSwitcher.setInAnimation(context, R.anim.slide_down_in)
textSwitcher.setOutAnimation(context, R.anim.slide_down_out)