我正在创建幻灯片,其中显示了一些按钮。当用户点击屏幕时,按钮逐渐消失。我使用状态变量来确定按钮应处于什么状态。但是,似乎下一页被创建和缓存。因此,当我淡出按钮并移动到下一页时,按钮是可见的,但在以下页面中它们不可见(因为渲染是在我设置状态后发生的)。请参阅下面的扩展PagerAdapter类的代码。
final Animation topSlideIn = AnimationUtils.loadAnimation(context, R.anim.top_slide_in);
final Animation topSlideOut = AnimationUtils.loadAnimation(context, R.anim.top_slide_out);
if (isMetaVisible) {
btnDelete.setVisibility(View.VISIBLE);
btnClose.setVisibility(View.VISIBLE);
} else {
btnDelete.setVisibility(View.GONE);
btnClose.setVisibility(View.GONE);
}
topSlideOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation) {
btnDelete.setVisibility(View.GONE);
btnClose.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) { }
});
topSlideIn.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation) {
btnDelete.setVisibility(View.VISIBLE);
btnClose.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) { }
});
imgDisplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isMetaVisible) {
isMetaVisible = false;
btnDelete.startAnimation(topSlideOut);
btnClose.startAnimation(topSlideOut);
} else {
isMetaVisible = true;
btnDelete.startAnimation(topSlideIn);
btnClose.startAnimation(topSlideIn);
}
}
});
在相关的说明中,由于按钮是每页按钮,当我滑动按钮时也会移动。是否有一种更简单的方法可以实现这一点,即按钮在ViewPager之外,即使在我滑动时也是静态的?