Wischen implementieren

  • Antworten:4
Gelöschter Account
  • Forum-Beiträge: 51

04.11.2010, 14:21:16 via Website

Also ich will ein Wischen zwischen Bildschirmseiten implementieren. Genauergesagt soll damit zwischen Tagen quasi gewechselt werden also wenn Montag ist mit einem Wisch nach rechts auf Dienstag mit den Daten vom Dienstag beispielsweise.
Ich weiß mittlerweile das dazu der ontouchlistener gebraucht wird (glaub ich zumindest), aber ich finde nicht wirklich etwas wie dieser in das Programm eingebaut wird.

Antworten
Gelöschter Account
  • Forum-Beiträge: 51

04.11.2010, 15:28:32 via Website

Tim Meißner
kurz ma gegoogelt:

http://www.warriorpoint.com/blog/2009/05/29/android-switching-screens-by-dragging-over-the-touch-screen/

sorry das ich es nicht auf deutsch schreiben kann, aber ich kann das selbst noch nicht :(
Ah das sieht gut aus, danke. Das werd ich nachher mal durcharbeiten.

Auf Deutsch schreiben ist nicht nötig, Englisch ist kein Problem.

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

04.11.2010, 15:45:31 via App

Danke für den Link! Sowas wollte ich schon immermal ausprobieren.. :)
Lg Ansgar

Antworten
Gelöschter Account
  • Forum-Beiträge: 51

05.11.2010, 09:29:37 via Website

So funktioniert wunderbar aber ein kleines Problem habe ich. Die Layouts die gewechselt werden (bzw. wird immer das selbe gewechselt) sind immer Tabellen, deren Inhalte aber dynamisch im Code eingefügt werden.
Hier mal der Code:
1// going backwards: pushing stuff to the right
2 if (downXValue < currentX && currentX - downXValue > 150)
3 {
4 // Get a reference to the ViewFlipper
5 ViewFlipper vf = (ViewFlipper) findViewById(R.id.day_details);
6 // Set the animation
7 vf.setInAnimation(arg0.getContext(), R.anim.slide_in_left);
8 vf.setOutAnimation(arg0.getContext(), R.anim.slide_out_left); // Flip!
9 vf.showPrevious();
10 this.day -=1;
11 if (this.day <1) {
12 this.day=6;
13 }
14 this.setContentView(R.layout.main);
15 this.setDayText();
16 this.createRowDay(this.getSubjecttable().getTimeTableSubjectsForDay(this.day));
17 // Register Touch Event for the vertical layout
18 LinearLayout layMain = (LinearLayout) findViewById(R.id.layout_day);
19 layMain.setOnTouchListener((OnTouchListener) this);
20
21
22 }
Das ist jetzt ein Ausschnitt. Wenn ich alles unterhalb von vf.showPrevious(); wegnehme habe ich animationen, mit dem Code funktioniert der Wechsel, allerdings ohne Animation.
Hat jemand eine Idee woran es liegt?

/edit Kaum schreib ichs fällt mir der Fehler auf. this.setContentView(R.layout.main); muss das erste sein, was in der If Bedingung ausgeführt werden muss. Ansonsten werden die Animationen nicht an den Viewflipper überwiesen.

— geändert am 05.11.2010, 09:33:44

Antworten