मेरे पास एक व्यूपज़र है जिसमें प्रत्येक का विचार डेक पर कार्ड का प्रतिनिधित्व है। प्रत्येक कार्ड में व्यूपार्जर मार्जिन का उपयोग करके सीमा पर एक छाया है:पेज ट्रांसफॉर्मर ट्रांसफॉर्मेशन में व्यूपार्ज मार्जिन
cardsViewPager.setPageMargin(getResources().getDisplayMetrics().widthPixels/20);
cardsViewPager.setPageMarginDrawable(R.drawable.shadow);
और यह अपेक्षा के अनुसार काम करता है।
लेकिन, अगर मैं एक PageTransformer जोड़ सकते हैं ताकि सही पर कार्ड बाईं तरफ के पत्ते के ऊपर एक स्टैक देगा:
cardsViewPager.setPageTransformer(false, new ScalePageTransformer(cardsViewPager));
लेकिन अब:
public class ScalePageTransformer implements PageTransformer {
private final ViewPager mViewPager;
public ScalePageTransformer(ViewPager viewPager) {
this.mViewPager = viewPager;
}
@Override
public void transformPage(View page, float position) {
if (position <= 0) {
int pageWidth = mViewPager.getWidth();
final float translateValue = position * -pageWidth;
if (translateValue > -pageWidth) {
page.setTranslationX(translateValue);
} else {
page.setTranslationX(0);
}
}
}
}
मैं कर ऐसा करते हैं मार्जिन प्रकट नहीं होता है। अगर पेजरान्सफॉर्मर पर ज़ूम आउट प्रभाव पड़ा, तो मैं देख सकता हूं कि वर्तमान कार्ड को कब घटाया जा रहा है, कि मार्जिन ड्रायबल स्क्रीन पर वर्तमान कार्ड से नीचे है। यहाँ का वर्णन करने के क्या हो रहा है एक तस्वीर है:
नीले कार्ड लाल कार्ड के ऊपर दाएं से बाएं स्वाइप किया जा रहा है। चूंकि लाल कार्ड में पैमाने परिवर्तन होता है, इसलिए हम इसके पीछे काले रंग में मार्जिन को आकर्षित कर सकते हैं।
क्या लाल कार्ड के शीर्ष पर होने वाले मार्जिन को मजबूर करने का कोई तरीका है? क्या यह डिफ़ॉल्ट व्यवहार नहीं होना चाहिए?
एंड्रॉइड डेवलपर वेबसाइट से कॉपी पेस्ट किसी की भी मदद नहीं करेगा। समस्या को समझने का प्रयास करें और फिर टिप्पणी पोस्ट करें। – George