单击按钮时,有没有办法使列表视图与幻灯片动画一起出现?
Is there a way to make a listview appear with a slide animation when a button is clicked?
我正在开发一个 m3u 直播应用程序,我想在列表视图中显示所有频道。现在我不知道如何使列表视图在单击按钮时从右侧显示为带有滑动动画的图片,并在我再次单击按钮时使其消失(滑出动画)。
有人可以帮我吗?picture of what I want to achieve
编辑:我试过了,但不幸的是没有成功。
//slide in imgbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgbuttonisclicked = true;
ValueAnimator widthAnimator = ValueAnimator.ofInt(0, 255);
widthAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int animatedValue = (int) animation.getAnimatedValue();
list.getLayoutParams().width = animatedValue;
list.requestLayout();
}
});
//slide out if (imgbuttonisclicked){
widthAnimator = ValueAnimator.ofInt(255, 0);
widthAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int animatedValue = (int) animation.getAnimatedValue();
list.getLayoutParams().width = animatedValue;
list.requestLayout();
}
});
}
}
});
您或许可以在列表的宽度 属性 上播放。首先将其设置为 0,然后在按钮单击事件上将其设置为更大的宽度。您可以在此 article.
中了解有关 属性 动画的更多信息
编辑:answer 提供了更好的解决方案。
我正在开发一个 m3u 直播应用程序,我想在列表视图中显示所有频道。现在我不知道如何使列表视图在单击按钮时从右侧显示为带有滑动动画的图片,并在我再次单击按钮时使其消失(滑出动画)。
有人可以帮我吗?picture of what I want to achieve
编辑:我试过了,但不幸的是没有成功。
//slide in imgbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgbuttonisclicked = true;
ValueAnimator widthAnimator = ValueAnimator.ofInt(0, 255);
widthAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int animatedValue = (int) animation.getAnimatedValue();
list.getLayoutParams().width = animatedValue;
list.requestLayout();
}
});
//slide out if (imgbuttonisclicked){
widthAnimator = ValueAnimator.ofInt(255, 0);
widthAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int animatedValue = (int) animation.getAnimatedValue();
list.getLayoutParams().width = animatedValue;
list.requestLayout();
}
});
}
}
});
您或许可以在列表的宽度 属性 上播放。首先将其设置为 0,然后在按钮单击事件上将其设置为更大的宽度。您可以在此 article.
中了解有关 属性 动画的更多信息编辑:answer 提供了更好的解决方案。