[英]Translate animation on views with position dependencies
我遇到了一個問題,我有一個標題視圖,我想將其轉換為可見性和可見性 - 使用轉換動畫 - 位於主內容視圖的正上方。 為了說明我的意思,請看下圖。 藍色部分是標題,橙色部分是主要內容。
示例代碼
TranslateAnimation animation = new TranslateAnimation(0, 0, 0, -rlInfoBar.getHeight());
animation.setFillAfter(true);
animation.setDuration(10000);
animation.setAnimationListener(new TranslateAnimation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
rvItems.startAnimation(animation);
rlInfoBar.startAnimation(animation);
當我翻譯藍色部分時,即使主要部分被聲明為“android:layout_below="@+id/”它仍然在原位。我的想法是然后翻譯它們,但是,當這樣做時,主要內容被向上移動但是屏幕底部也向上移動顯示父視圖的背景。如何解決這個問題?我是否必須翻譯兩個視圖並拉伸主內容視圖或以某種方式將主內容視圖錨定到屏幕底部?
翻譯兩個視圖的結果
我是否必須翻譯兩個視圖並拉伸主內容視圖或以某種方式將主內容視圖錨定到屏幕底部?
好吧,如果你不拉伸主要內容View
那么一旦標題View
向上移動,將其錨定到底部將導致頂部出現間隙。 所以我認為你需要一組動畫(縮放和翻譯)。
或者您使用Transition 框架,在這種情況下, ChangeBounds
轉換將為兩個View
完成工作
View sceneRoot = <someViewGroupContainingBothViews>;
TransitionManager.beginDelayedTransition(sceneRoot, new ChangeBounds());
rlInfoBar.setY(<newY_CoordinateOfHeaderView>);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.