我想在 setVisibility 上为视图设置动画,但它只在第一次使用
I want to animate view on setVisibility but it works only for the first time
我添加了
android:animateLayoutChanges="true"
我的回收站视图和可见性在 onClick
中如下处理,但它仅在第一次点击时有效。
rlOtherOptions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
if (rvModeCheck.getVisibility() == View.GONE) {
rvModeCheck.setVisibility(View.VISIBLE);
} else {
rvModeCheck.setVisibility(View.GONE);
}
}
});
我该怎么办?
android:animateLayoutChanges="true"
请像上面一样添加到您的 XML...
的根布局
尝试将此代码放在 onCreateView 方法中(如果尚未)。
您的问题可能需要再添加一些 information/code 以获得更好的帮助。
尝试通过代码制作动画
rlOtherOptions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
if (rvModeCheck.getVisibility() == View.GONE) {
rvModeCheck.setVisibility(View.VISIBLE);
rvModeCheck.setAlpha(0);
rvModeCheck.animate().alpha(1).setDuration(300).setListener(null);
} else {
rvModeCheck.animate().alpha(0).setDuration(300).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
rvModeCheck.setVisibility(View.GONE);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
}
});
我添加了
android:animateLayoutChanges="true"
我的回收站视图和可见性在 onClick
中如下处理,但它仅在第一次点击时有效。
rlOtherOptions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
if (rvModeCheck.getVisibility() == View.GONE) {
rvModeCheck.setVisibility(View.VISIBLE);
} else {
rvModeCheck.setVisibility(View.GONE);
}
}
});
我该怎么办?
android:animateLayoutChanges="true"
请像上面一样添加到您的 XML...
的根布局尝试将此代码放在 onCreateView 方法中(如果尚未)。
您的问题可能需要再添加一些 information/code 以获得更好的帮助。
尝试通过代码制作动画
rlOtherOptions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
if (rvModeCheck.getVisibility() == View.GONE) {
rvModeCheck.setVisibility(View.VISIBLE);
rvModeCheck.setAlpha(0);
rvModeCheck.animate().alpha(1).setDuration(300).setListener(null);
} else {
rvModeCheck.animate().alpha(0).setDuration(300).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
rvModeCheck.setVisibility(View.GONE);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
}
});