Viewpager inner halb der gleichen Activity?

  • Antworten:4
Stefan A
  • Forum-Beiträge: 18

05.04.2012, 11:40:05 via Website

Hallo,
ich habe folgendes Szenario:
- 1 Activity die mir einen Wochenplan anzeigt
- Klicke ich auf weiter wird die nächste Woche angezeigt, klicke ich auf Zurück wird die vorige Woche angezeigt.
- Jezt würde ich das ganze gerne so gestalten, dass ich durch "Wischen" die nächste/vorige Woche anzeigen kann

Hat jemand ne Idee wie das funktioniert? Habe es mit Viewpager nicht hinbekommen
Es ist immer die gleiche Activity. Es soll lediglich eine Methode der Activity aufgerufen werden, welche anschließend die Daten aktualisiert und die nächste/vorige Woche anzeigt.

Vielen Dank.
Gruß
mc

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

05.04.2012, 11:50:08 via App

Hm,
der ViewPager erwartet soweit ich weiß verschiedene Views, die man mit wischen wechseln kann.
Nun kannst du entweder die Views hinzufügen, oder aber du bastelst dir selbst was mit Animationen und einem GestureListener (also für dein "OnSwipe").
Lg Ansgar

Antworten
Stefan A
  • Forum-Beiträge: 18

05.04.2012, 13:43:23 via Website

Wenn ich es selbst übernehme, habe ich das Problem, dass das wischen ignoriert wrid, wenn ich beispielsweise über einer Listview bin. Da dann natürlich das Item der Listview ausgewählt wird.

Hier mein Beispiel:
1public boolean onTouchEvent(MotionEvent touchevent) {
2
3 switch (touchevent.getAction())
4 {
5 case MotionEvent.ACTION_DOWN:
6 {
7 lastX = touchevent.getX();
8 break;
9
10 }
11 case MotionEvent.ACTION_UP:
12 {
13 float currentX = touchevent.getX();
14 if (lastX < currentX)
15 {
16 vf.setInAnimation(this, R.anim.in_from_left);
17 vf.setOutAnimation(this, R.anim.out_to_right);
18 Toast.makeText(this, "Next", Toast.LENGTH_SHORT).show();
19 vf.showNext();
20
21 }
22
23 if (lastX > currentX)
24 {
25 vf.setInAnimation(this, R.anim.in_from_right);
26 vf.setOutAnimation(this, R.anim.out_to_left);
27 Toast.makeText(this, "Previous", Toast.LENGTH_SHORT).show();
28 vf.showPrevious();
29
30 }
31
32 break;
33
34 }
35
36 }
37 return false;
38 }

Kann mir da jemand helfen bitte?
Danke.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

05.04.2012, 17:37:04 via App

mit viewpager und Fragments geht das relativ einfach. gibt viele Beispiele dafür im Netz.

swordiApps Blog - Website

Antworten
Stefan A
  • Forum-Beiträge: 18

05.04.2012, 19:14:59 via Website

Aber ich habe ja eben keine verschiednene Fragmente. Ich hab nur eine Activity und dort muss nur eine Funktion aufgerufen werden, sobald nach rechts oder links "gewischt" wird. Oder verstehe ich das mit den Fragments falsch?

— geändert am 05.04.2012, 19:15:31

Antworten