6

enter image description hereDynamisch Änderungszählwert von PagerIndicator in ViewPager oder PagerAdapter

Welche Wirkung ich haben will ist:

  1. Anzahl der Bottom-Kreis Indikator Hälfte Seitenzahl sein muss, wenn Seitenbreite Hälfte.

  2. Die Nummer des unteren Kreisindikators muss so groß wie die Seitenzahl sein, wenn die Seitenbreite voll ist.

auch, gibt es eine weitere Anforderung:

  1. kann ich blättern zwei Seiten in einzelnen blättern, wenn Seitenbreite Hälfte ist?
  2. und nur eine Seite im Einzelbildlauf scrollen, wenn die Seitenbreite voll ist?

Seitenbreite wird durch PagerAdapter # getPageWidth() erworben

kann jeder die perfekte Lösung für dieses geben? ohne zwei Layout-Dateien oder zwei Adapter zu machen?

Hier ist der gesamte Quellcode, den ich entwickelt habe, um diese GIF-basierte Aktivität zu erreichen.

Frage Verbesserung wird akzeptiert.

https://github.com/raghavsatyadev/DemoPort

+1

ich verstehe nicht, you mam scrolling? links rechts? – Elltz

+0

ja Scrollen auch. Wenn die Breite halb ist möchte ich zwei Seiten gleichzeitig scrollen (mit einem einzigen Wischen) –

+0

Würden Sie bitte meine Frage beantworten. Im Halbbreiten-Modus, wenn Sie nach rechts oder links blättern, würden sich beide Elemente ändern oder nur eines von ihnen würde ändern ? Was ist dein gewünschtes Verhalten? –

Antwort

1

Meiner Meinung nach in diesem Fall die beste Praxis ist die Ansicht, [s] auf eine Ansicht Gruppe in dem Adapter zu binden. In Ihrem Adapter sollten Sie ein lineares Layout erstellen und so viele Kinder hinzufügen, wie Sie wollen

public Object instantiateItem(ViewGroup container, int position) { 
    LinearLayout ll = new LinearLayout(context); 
    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,MATCH_PART); 
    param.weight = 1.0f; 

    for (int i; i < getChildrenInPage() ; i++) { 
     MyView myView = View.inflate(context, R.layout.my_layout, null) 
     myView.bind(getDataForPosition(getChildrenInPage()*position + i)) 
     ll.add(myView, params)); 
    } 
} 
+0

Mann du bist einfach toll. Bearbeiten der Antwort nach meinem Code –

Verwandte Themen