2 Stimmen

Ziehen des ViewSwitcher (vgl. Kalenderwochenansicht / Google Talk-Konversationen)

Ich möchte etwas wie die Wochenansicht des Android-Kalenders implementieren, in der man sich durch die Wochen bewegen kann - oder wie die Talk-App, in der man zwischen Unterhaltungen wechseln kann. Mit anderen Worten, ich möchte in der Lage sein ziehen die Ansichten, nicht nur das Wischen.

Das Einzige, was ich zu können scheine, ist der Wechsel der Ansicht (mit einer gleitenden Animation) nach die Wisch-Aktion. In den beiden genannten Beispielen werden die Ansichten tatsächlich gezogen, d. h. die Animation wird angezeigt, während Sie Ihren Finger auf dem Bildschirm bewegen.

Ich habe die Quelle des Kalenders durchgesehen, aber die betroffenen Klassen sind so umfangreich, dass ich mir keinen Reim darauf machen kann.

Hat jemand so etwas schon einmal gemacht, oder gibt es irgendwo eine (relativ knappe) Quelle?

Zum Wohl.

1voto

Ich habe mir den Code des Kalenders angesehen, und ich habe Folgendes verstanden:

En WeekActivity enthält eine ViewSwitcher die sich aus zwei Teilen zusammensetzt CalendarView . Wenn der Benutzer ein Bildlaufereignis auslöst, wird dieses Ereignis von der CalendarActivity und ermittelt die X-Koordinate der Schriftrolle. Die aktuelle Ansicht wird für ungültig erklärt, was den Aufruf der onDraw() Funktion der CalendarView (die onDraw() Methode werden das Gitter und die Ereignisse gezeichnet).

En onDraw() wird die Leinwand mit der X-Taste ( canvas.translate(x) ) und die onDraw() Methode der anderen Ansicht des ViewSwitchers wird aufgerufen, um den Rest des Inhalts auszufüllen.


Ich wollte das gleiche Verhalten in meiner Anwendung haben, aber ich habe mich entschieden, stattdessen eine Galerie zu verwenden und sie an meine Bedürfnisse anzupassen.

1voto

Sudarshan Bhat Punkte 3742

Sie sollten Folgendes verwenden ViewPager aus dem Android-Kompatibilitätspaket.

この ist ein guter Startpunkt. Dies wird genau das tun, was Sie wollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X