簡體   English   中英

Android 帶卡片堆的垂直視圖尋呼機

[英]Android Vertical View Pager with card stack

我正在嘗試實現一個垂直可滑動的ViewPager ,它帶有一堆卡片,如外觀。

我能夠使用ViewPager.PageTransformer並交換觸摸點來實現 VerticalViewPager。 我得到以下卡片外觀 - 在此處輸入圖像描述

我想實現以下外觀 - 在此處輸入圖像描述

我怎樣才能達到這種效果? 提前致謝。

為了獲得沒有任何庫依賴性的垂直View Pager 您可以按照以下步驟操作:

  1. 在您的activity_main.xml中

     <android.support.v4.view.ViewPager android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="600dp" android:id="@+id/viewpager"> </android.support.v4.view.ViewPager> 

  2. 在您的viewpager_contents.xml中

您可以根據上圖創建所需的設計。

  1. 創建適配器模型類以保存數據。

4.在MainActivity.java中 ,設置適配器和pageTransformer后,添加以下代碼。

private class ViewPagerStack implements ViewPager.PageTransformer {
    @Override
    public void transformPage(View page, float position) {
        if (position >= 0) {
            page.setScaleX(0.7f - 0.05f * position);
            page.setScaleY(0.7f);
            page.setTranslationX(-page.getWidth() * position);
            page.setTranslationY(30 * position);
        }
    }
}

有關詳細參考,您可以觀看以下視頻: 單擊此處

希望您能得到所需的輸出!!

您可以使用SwipeStack庫 它完全可以滿足您的要求-它基本上是一個視圖組,可以根據您的適配器實現來擴展視圖,並將它們一個放在另一個之上。

魔術在這里https://github.com/yuyakaido/CardStackView 您可以輕松自定義所需的內容。 快樂的編碼:)

上述解決方案都無法對我有效。 這是我的解決方案:

我的PageTransformer類:

class ViewPagerCardTransformer : ViewPager.PageTransformer {
  override fun transformPage(page: View, position: Float) {
    if (position >= 0) {
      page.scaleX = 0.9f - 0.05f * position
      page.scaleY = 0.9f
      page.alpha = 1f - 0.3f * position
      page.translationX = -page.width * position
      page.translationY = -30 * position
    } else {
      page.alpha = 1 + 0.3f * position
      page.scaleX = 0.9f + 0.05f * position
      page.scaleY = 0.9f
      page.translationX = page.width * position
      page.translationY = 30 * position
    }
  }
}

我的片段中的代碼:

val adapter = MyPagerAdapter(pageItems)
viewPager.adapter = adapter
/*below line will increase the number of cards stacked on top of 
each other it is set to 1 by default. don't increase it too much as you
will end up with too much view page items in your memory
*/
mDaysViewPager.offscreenPageLimit = 3 
viewPager.setPageTransformer(true, ViewPagerCardTransformer())

不要將任何VerticalViewPager與帶有PagerSnapHelper的簡單RecyclerView一起使用,就可以像非常平滑的方式一樣實現它,並將所需的布局添加到其中。 您可以獲得更好的性能。

檢查此: https : //link.medium.com/aBN5iEFk30

我將此代碼用於垂直卡片視圖堆棧

https://github.com/AndroidDeveloper98/StackViewPager

在此處輸入圖像描述

暫無
暫無

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

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