簡體   English   中英

如何在ViewPager位置偏移更改時為視圖設置動畫

[英]How to animate views as the ViewPager position offset changes

我們想創建一個帶有動畫的應用介紹,其中用戶滾動頁面,並且隨着用戶滾動,視圖被動畫化並遍歷所有幻燈片。 動畫視圖應隨着用戶滾動而移動,因此,如果用戶滾動得更快,動畫視圖應移動得更快,並且如果用戶向后滾動到上一頁,則動畫視圖應向后移動。

在iOS中使用https://github.com/IFTTT/JazzHands超級簡單,但是我找不到在Android中執行此操作的方法。

我發現的問題:

  • 動畫實時運行; 您不能讓時間成為ViewPager的偏移量。
  • FragmentPagerAdapter ,不能將一個片段的視圖移動到另一個片段。

有什么建議嗎? 謝謝。

這是部分答案。 這是第一個問題。

  • 動畫實時運行; 您不能讓時間成為ViewPager的偏移量。

我可以改變動畫視圖的屬性在onPageScrolled的方法OnPageChangeListener所述的ViewPager

這是一個簡單的示例,它更改了動畫視圖的左邊距,因此它向右移動。

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            super.onPageScrolled(position, positionOffset, positionOffsetPixels);

            LayoutParams params = (LayoutParams) animatedView.getLayoutParams();
            params.setMargins((int) ((position + positionOffset) * 500), 0, 0, 0);
            animatedView.setLayoutParams(params);
        }

但是,第二個問題沒有解決。 當視圖到達頁面右側時,它消失。 換句話說,視圖無法移至下一頁(片段)。

對於第二個問題:

當不再需要視圖時,viewPagerAdapter將銷毀這些視圖,以便使視圖在所有需要的頁面中可見,並將其添加到包含ViewPager的布局中。

這樣的事情可以工作:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white_transparent"
        />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text out of view pager"
        android:textSize="25sp"
        />
</RelativeLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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