簡體   English   中英

在具有位置依賴關系的視圖上翻譯動畫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM