我目前的实现如下,它工作正常。在这里,我在 RelativeLayout 中使用了 2 个 TextView。
adapterHandler.post(new Runnable() {
@Override
public void run() {
if (isLogin) {
mHolder.mUser.setVisibility(View.VISIBLE);
mHolder.mUser.animate().alpha(1f)
.setDuration(500)
.setListener(null);
mHolder.mDate.animate()
.alpha(0.0f)
.setDuration(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mHolder.mDate.setVisibility(View.INVISIBLE);
}
});
isLogin = false;
} else {
mHolder.mDate.setVisibility(View.VISIBLE);
mHolder.mDate.animate().alpha(1f)
.setDuration(500)
.setListener(null);
mHolder.mUser.animate().alpha(0.0f)
.setDuration(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mHolder.mUser.setVisibility(View.INVISIBLE);
}
});
isLogin = true;
}
}
});
这是在相对布局的帮助下完成的。这是用于进行可见性更改的布局部分。
.
<RelativeLayout
android:layout_width="wrap_content"
android:layout_marginBottom="@dimen/margin_10"
android:layout_height="wrap_content">
<TextView
android:id="@+id/commitUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/header_title"
android:textStyle="bold"
/>
<TextView
android:id="@+id/commitDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/header_title"
android:textStyle="bold"
/>
</RelativeLayout>
.
但它不是一个流畅的动画。我相信有经验的人会提供更好的解决方案。