2012-03-28 98 views
46

我想在ViewPagerViewPager - 獲取下一個頁面

的第一個片段(藍色)來實現,這是顯示和必須顯示以及下一個片段開始的局部視圖,因此用戶瞭解他可以輕掃以切換視圖。 這個想法是以編程方式向左滾動屏幕的20%。

有什麼想法,歡迎

編輯:這正是我需要到:中央視圖需要兩方重疊側視圖

enter image description here

回答

44

您可以嘗試添加以下內容到PageAdapter:

public float getPageWidth(int position) { 
    if (position == 0 || position == 2) { 
     return 0.8f; 
    } 
    return 1f; 
} 
+0

@Juizas:我也面臨同樣的問題,它工作正常。謝謝。但我有一些動態視圖,我需要顯示前後頁面的每個視圖,它只能讓右側的孩子只能看到它。我嘗試了很多方法,請幫助解決這個問題。像這個https://gist.github.com/devunwired/8cbe094bb7a783e37ad1,但它需要時間來加載視圖 – Pinki 2013-04-25 14:08:05

+0

@Praveena,如果getPageWidth()不能正常工作,您可能需要尋找替代解決方案。也許使用setPageMargin的負值。也許將ViewPager源代碼添加到您的項目並進行修改。 – 2013-04-25 14:14:40

15

嘗試使用負值爲ViewPager.setPageMargin

+1

可以工作,但會導致片段重疊 - 如果這是最好的修復方法,那麼請確保您的頁面足夠瘦以便使用它。 – edthethird 2012-03-29 02:53:15

+0

感謝AdamK,這隻能部分解決我的問題,因爲我需要做的比這更多。我已經更新了這個問題,你有想法嗎? – znat 2012-03-29 14:10:31

+0

@zylootino - 不幸的是我不認爲一個標準的ViewPager能夠完成你的更新版本。您需要通過擴展ViewPager來自定義構建它,這將是一項更復雜的任務。我不知道從哪裏開始抱歉。 – AdamK 2012-03-29 21:02:10

12

此功能(反正我)的工作比答案標記爲正確的。

@Override 
public float getPageWidth(int position) { 
    return 0.9f; 
} 

只需將它放在您的自定義PagerAdapter類中。

+1

它是在接受的答案完全一樣的方法... – znat 2014-06-05 23:12:49

+0

請參閱功能的內容 - 接受的答案沒有爲我工作,這一個。 – 2014-06-06 00:20:06

3
viewpager.setClipToPadding(false); 
viewpager.setPageMargin(-50); 
相關問題