2012-01-20 19 views
10

में पृष्ठों को लंबवत स्क्रॉल करने के बाद यह स्पष्ट और पूरी तरह से अनियंत्रित पोस्ट हो सकता है लेकिन मुझे एक VewPager में पृष्ठों पर लंबवत स्क्रॉलिंग कार्यक्षमता की अनुमति देने के लिए एक समस्या का समाधान करने में काफी समस्या आई थी और Google पर बहुत कम संकल्प आ रहे थे और यहां तक ​​कि यहाँ। मैंने कुछ लोगों को इस मुद्दे को हल करने का दावा किया लेकिन उन्हें विस्तारित और दृढ़ लग रहा था। तो उन लोगों के लिए जो एक ही मुद्दे की तलाश कर रहे हैं उनके लिए समाधान है। इसके साथ (और आप यहां जो लिखा है उससे बड़े स्ट्रिंग बनाना चाहते हैं) आप लंबवत सामग्री को स्क्रॉल करने और पृष्ठों के बीच स्वाइप करने में सक्षम होंगे।ViewPager

layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/conpageslider" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
</LinearLayout> 

स्क्रॉल viewpager वर्ग

public class ScrollingViewPager extends Activity{ 

private ViewPager pager; 
private Context cxt; 
private CharSequence[] pages = {"stuff", "more stuff", "other stuff"}; 
private PageSlider ps; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.layout); 
    cxt = this; 
    ps = new PageSlider(); 
    pager = (ViewPager) findViewById(R.id.conpageslider); 
    pager.setAdapter(ps);  

} 

public class PageSlider extends PagerAdapter{ 

    @Override 
    public int getCount() { 
     return pages.length; 
    } 

    @Override 
    public Object instantiateItem(View collection, int position) { 
     ScrollView sc = new ScrollView(cxt); 
     sc.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     sc.setFillViewport(true); 
     TextView tv = new TextView(cxt); 
     tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     tv.setText(pages[position]); 
     tv.setPadding(5,5,5,5);   
     sc.addView(tv); 
     ((ViewPager) collection).addView(sc); 

     return sc; 
    } 

    @Override 
    public void destroyItem(View collection, int position, Object view) { 
     ((ViewPager) collection).removeView((ScrollView) view); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view==((ScrollView)object); 
    } 

} 
} 

मैं कोड पर आलोचना लेकिन कम से कम यहाँ के लिए खुला रहा हूँ एक कार्य उदाहरण है

+2

यह एक क्षैतिज व्यूअर में लंबवत स्क्रॉलिंग की अनुमति देने के लिए है। इसे पूर्ण लंबवत व्यूअर के लिए जांचें https://github.com/JakeWharton/Android-DirectionalViewPager – Bastiat

+0

तो आपने कहा कि आपका कोड वर्टिकल व्यूपेजर में परिणाम देता है, लेकिन वास्तव में केवल सामान्य, क्षैतिज रूप से, viepager है। क्या मै गलत हु ? – Paul

+0

इस लाइब्रेरी का उपयोग करें https://github.com/castorflex/VerticalViewPager –

उत्तर

1

मैं इसी तरह की है कि एक का उपयोग किया दर्शक में टुकड़े। टैबविगेट दिखाया जा सकता है या नहीं। वह उदाहरण एंड्रॉइड-सपोर्ट-वी 4 डेमो एप्लिकेशन में शामिल है।

1

मैंने परिदृश्य में स्क्रीनऑरिएंटेशन सेट करके इसे हासिल किया, फिर व्यूपार्जर की सामग्री डालने जैसे कि यह पोर्ट्रेट मोड में है।

+0

क्या आप एक उदाहरण दे सकते हैं? धन्यवाद – Paul

+0

तो व्यूअरजर में सभी ऑब्जेक्ट के बारे में क्या? यह भी घूमना होगा? –