Frage

Ich würde braucht Hilfe mit einer einfachen Implementierung eines ViewFlipper. Der Flipper funktioniert perfekt, wenn ich Kind Ansichten „ws.addView (childView)“ in der onCreate der Aktivität aufzublasen.

ich auf ein Problem stoßen, wenn ich alle Kinder aus dem Flipper entfernen möge, und ein anderes Bündel von ihnen über addView (Kind) Methode hinzufügen. Ich versuche, die onFinishInflate () und invalidate () Methoden auf den Flipper zu nennen, die offenbar nicht den gewünschten Effekt der Auffrischung des Inhalts des Flippers zu erzeugen. Die Ansicht des Flippers ist leer. Ich überprüft, ob der Flipper Kinder nach der addView Schleife enthält und in meinem Fall die Zahl> 1. Vielleicht bin ich etwas fehlt. Hoffnung jemand kann mir helfen.

                ws.removeAllViews();
                ArrayList<View> childViews = getAllChildrenFromSomewhere();
                for (View childView : childViews) {
                    ws.addView(childView);
                }
                ws.onFinishTemporaryDetach();

                ws.onFinishInflate();
                ws.invalidate();    

Mit freundlichen Grüßen

War es hilfreich?

Lösung

konnte ich die Antwort auf meine Frage finden. Ich war die Beseitigung aller Kinder aus dem ViewFlipper und der nächste Schritt war, um neue Kinder in den ViewFlipper hinzuzufügen. Entfernen aller Kinder und entkräften die Ansicht wurde in einer leeren Ansicht führt, da kein Kind ausgewählt wurde. Dadurch, dass nur neue Kinder hinzufügen und wieder den Blick ungültig zu machen, blieb der ViewFlipper leer. Durch die Verwendung von ws.showNext () nach ws.invalidate () wird das erste Kind von den neuen Kindern gezeigt und die ViewFlipper wie erwartet funktionieren. Hoffe, das hilft.

            ws.removeAllViews();
            ArrayList<View> childViews = getAllChildrenFromSomewhere();
            for (View childView : childViews) {
                ws.addView(childView);
            }
            ws.onFinishTemporaryDetach();

            ws.onFinishInflate();
            ws.invalidate();  
            // show the first childView
            ws.showNext();

Mit freundlichen Grüßen und glücklich Codierung: -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top