ClassCastException ViewGroup $ LayoutParams können nicht in ViewPager $ LayoutParams umgewandelt werden

8

Meine ursprüngliche Codezeile befindet sich in der überschriebenen Methode onGlobalLayout() :

%Vor%

ClassCastException, die in der überschriebenen Methode onGlobalLayout() -

auftritt

Fehlerprotokoll:

%Vor%

Und wenn ich folgendes mache, um den obigen Fehler zu beheben, wie in anderen SO-Posts angegeben:

%Vor%

Dann bekomme ich den Fehler Kompilierzeit:

%Vor%

ViewPager in XML ist wie folgt definiert:

%Vor%     
My God 02.09.2013, 09:01
quelle

4 Antworten

19

Ihr Bild hat bereits Layoutparameter. Anstatt sie durch ein neues Objekt zu ersetzen (das in diesem Fall vom falschen Typ ist, erwartet ViewPager , dass sie ViewPager.LayoutParams sind), können Sie vorhandene Layout-Parameter wie folgt ändern:

%Vor%

Beachten Sie, dass das bedingungslose Anfordern des Re-Layouts in onGlobalLayout() eine schlechte Idee sein kann und zu unendlichen Layout-Pässen führt. Ich habe es selbst nicht überprüft, ob das der Fall ist.

    
laalto 02.09.2013, 09:15
quelle
0

Mach dies so

%Vor%

AKTUALISIEREN

%Vor%     
Biraj Zalavadia 02.09.2013 09:05
quelle
0

Sie sollten sicherstellen, dass die LayoutParam -Klasse, die Sie verwenden, aus der richtigen übergeordneten Layout-Klasse stammt. Und Sie müssen die LayoutParams der ViewGroup festlegen, in der ViewPager sitzt, als übergeordnetes Element von View , das wissen muss, welche Größe der untergeordneten Ansicht zugewiesen werden soll. Zum Beispiel ist in Ihrem Fall ViewGroup ein RelativeLayout , Sie müssen die Klasse RelativeLayout.LayoutParams verwenden.

Sie können Folgendes versuchen:

%Vor%     
Ritesh Gune 02.09.2013 09:39
quelle
-1

beste und einfache Antwort

gehe zu Projekt --- & gt; säubere dein Projekt --- & gt; renne noch einmal Problem wird gelöst

    
Gowtham GS 02.09.2013 09:43
quelle

Tags und Links