2016-11-13 11 views
5

के लिए एक अलग गद्दी मैं पहले ही अपनी ViewPager के लिए एक "पेज झांकना" सुविधा को लागू सेट:ViewPager: पहली और आखिरी पेज

mPager.setClipToPadding(false); 
mPager.setPadding(120, 0, 120, 0); 
mPager.setPageMargin(60); 

ऐसा करने से मैं पिछले और अगले पृष्ठ के एक हिस्से को देखने के लिए कर रहा हूँ। लेकिन पहला और अंतिम पृष्ठ एक बड़ा सफेद स्थान दिखाता है क्योंकि इस दिशा में कोई अन्य पृष्ठ दिखाने के लिए नहीं है।

मैं पहले और अंतिम पृष्ठ के लिए एक अलग पैडिंग कैसे सेट कर सकता हूं?

+0

मैं आपकी समस्या के लिए एक सीधा ठीक नहीं मिला है, लेकिन आप 'FragmentPagerAdapter' में' getPageWidth' ओवरराइड और वापसी 0.9f कर सकते हैं, देखने 'ViewPager' की चौड़ाई का 90% हो जाएगा, लेकिन यह अंतिम पृष्ठ को छोड़कर केवल अगले पृष्ठ (पिछले नहीं) दिखाता है। – MohanadMohie

+0

दुर्भाग्य से मुझे उपलब्ध होने पर दोनों पेजों को दिखाने की ज़रूरत है ... – Alessandro

+0

आपने यह कैसे किया? –

उत्तर

7

मुझे एक ही समस्या का समाधान करना पड़ा और मैंने कस्टम PageTransformer सेट करके इसे हल किया। पहली और आखिरी स्थिति में जब मैं पृष्ठों को व्यावहारिक रूप से तब्दील करता हूं। अगर यह आपके काम का है, तो मुझे बताएं।

mPager.setClipToPadding(false); 
mPager.setPadding(120, 0, 120, 0); 
mPager.setPageMargin(60);  
mPager.setPageTransformer(false, new ViewPager.PageTransformer() { 
     @Override public void transformPage(View page, float position) { 
      if (mPager.getCurrentItem() == 0) { 
       page.setTranslationX(-120); 
      } else if (mPager.getCurrentItem() == adapter.getCount() - 1) { 
       page.setTranslationX(120); 
      } else { 
       page.setTranslationX(0); 
      } 
     } 
    }); 
+0

यह अच्छा समाधान है! –

संबंधित मुद्दे