2011-09-08 13 views
49

एंड्रॉइड मार्केट/Google संगीत ViewPager में मौजूद विभिन्न टुकड़ों के बीच किसी प्रकार का अंतर रखने में सक्षम प्रतीत होता है।पृष्ठ खंडों के बीच एंड्रॉइड व्यूपेजर पैडिंग/मार्जिन

कोई विचार यह कैसे किया जाता है? वास्तविक खंड दृश्य में मार्जिन/पैडिंग जोड़ना काम नहीं करता है, क्योंकि दृश्य को अभी भी स्क्रीन की पूरी चौड़ाई पर कब्जा करने की आवश्यकता है। ViewPager को स्वाइप करते समय 'अंतराल' केवल तभी दिखाई देता है।

उत्तर

100

Support Package, r4 में आप इन तरीकों का उपयोग कर सकते हैं:

ViewPager कक्षा में
setPageMargin(int marginPixels) 
setPageMarginDrawable(Drawable) 
setPageMarginDrawable(int) 

मैं क्यों इस आप डुबकी इकाई का उपयोग आप इस विधि का उपयोग कर सकते हैं की जरूरत है :-(

एक्सएमएल में समतुल्य नहीं है पता नहीं है: आशा इस के साथ किसी की मदद कर सकते हैं

public static int convertDip2Pixels(Context context, int dip) { 
    return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, context.getResources().getDisplayMetrics()); 
} 
+13

डी पी के लिए प्रयास करें, मैं क्लीनर Context.getResources()। GetDimensionPixelOffset (पूर्णांक dimenId) विधि पसंद करते हैं। – greg7gkb

+0

Context.getResources() को निष्पादित करते समय संसाधन नहीं मिला। GetDimensionPixelOffset (int dimenId) प्राप्त करें। teh आयाम की आईडी सही है लेकिन यह – jonney

+0

काम नहीं करता है संदर्भ के बजाय एडाप्टर संदर्भ का उपयोग करें –

14

एक ViewPager और पेज मार्जिन।

मैं एक ViewPager एक CardView है करना चाहते थे और Paddi के साथ मुद्दों था एनजी और व्यूअर पेजों के बीच मार्जिन। SetPageMargin बिल्कुल मेरे लिए काम नहीं किया था। मुझे निम्नलिखित का उपयोग करना पड़ा:

int pagerPadding = 16; 
pager.setClipToPadding(false); 
pager.setPadding(pagerPadding, 0, pagerPadding, 0); 

यह पृष्ठों को एक साथ बहुत करीब रहने की अनुमति देता है।

Example of the viewpager with a small margin between the pages.

1

pager.setClipToPadding (गलत); पेजर.सेट पैडिंग (बाएं, 0, दाएं, 0); यदि आपको व्यूअरजर में दो पृष्ठों के बीच स्थान की आवश्यकता है तो pager.setPageMargin (int) जोड़ें;

0

इसे आजमाएं।

ViewPager viewPager = (ViewPager) findViewById(R.id.h_view_pager); 
    viewPager.setClipToPadding(false); 
    viewPager.setPadding(60, 0, 60, 0); 
    viewPager.setPageMargin(20); 
    ImagePagerAdapter adapter = new ImagePagerAdapter(); 
    viewPager.setOffscreenPageLimit(adapter.getCount()); 
    viewPager.setAdapter(adapter); 
2
viewPager.setPageMargin(dpToPx(10)); 
    // replace 10 with the value you want for margin in dp. 


public int dpToPx(int dp) { 
    DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics(); 
    return Math.round(dp * (displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT)); 
} 
0

पिक्सल कनवर्ट करने के इस

viewPager.setClipToPadding(false); 
    viewPager.setOffscreenPageLimit(2); 
    viewPager.setPadding(20, 0, 20, 0);