2
我在屏幕底部創建了2行信息欄。佈局捕捉到可見(僅限第一次)而不是幻燈片動畫
- 首先只有頂行會被看到。
- 按下'展開'按鈕,第二行將從下面的 向上滑動。現在兩行都可見。
- 再次按下相同的按鈕,最下一行向下滑動,並且只有第一行顯示爲 。
這種情況是很常見的,並檢查不同的實現之後,我來到了這個簡單的一個幾乎完美的作品:
2個佈局在1>使底部GONE>的onClick - 使底部可見和適用於整個酒吧向上滑動>的onClick - 申請滑落酒吧,使底部GONE
下面是的onClick代碼:
mInfoBar = (RelativeLayout) mRootView.findViewById(R.id.infoBar);
mInfoBottomRow = (RelativeLayout) mRootView.findViewById(R.id.infoBottomRow);
mBtnExpand.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mInfoBottomRow.getVisibility() == View.GONE) {
mInfoBottomRow.setVisibility(View.VISIBLE);
TranslateAnimation slideUp = new TranslateAnimation(0, 0, mInfoBottomRow.getHeight(), 0);
slideUp.setDuration(200);
mInfoBar.startAnimation(slideUp);
} else {
TranslateAnimation slideDown = new TranslateAnimation(0, 0, 0, mInfoBottomRow.getHeight());
slideDown.setDuration(200);
slideDown.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
mInfoBar.clearAnimation();
mInfoBottomRow.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
});
mInfoBar.startAnimation(slideDown);
}
}
});
的問題是,在當第一次按下按鈕時,信息欄(頂部和底部的行)會對齊到其位置(沒有滑動效果)。
所有其他後續按鈕按下的作品完美...
第二次按下 - 酒吧下滑,顯示頂欄擱在屏幕的底部,底部的行了。
第3次按下 - 酒吧滑動顯示頂部和底部行。
等等...
不明白爲什麼setVisibility(可見)捕捉到只查看第一時間,或者爲什麼滑動效果沒有顯示的第一次。
我寧願不改變動畫的實現,因爲它給我所有的效果,但只有一次。 因此,任何有識之士都會非常感激。
非常感謝!嘗試了很多東西之後,這最終奏效了:-D。 –