Non inoltrare LinearLayout.LayoutParams a LinearLayout.LayoutParams. Non ha senso. Inoltre, non è chiaro se linearLayout
nel codice sia una variabile di istanza ... In ogni caso, puoi semplicemente consultare LayoutParams all'interno di una vista che si estende da un certo tipo di vista per ottenere i layoutParam della vista. Per esempio, se sei dentro di una classe che si estende da RelativeLayout, quindi
LayoutParams params = new LayoutParams(200, LayoutParams.WRAP_CONTENT);
si RelativeLayout.LayoutParams
ottiene. Altrimenti, dovrai qualificare lo LayoutParams
che stai cercando. Per ricevere/applicare LinearLayout LayoutParams, è sufficiente
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams();
EDIT
linearLayout.getLayoutParams()
restituisce il layoutParams
che hai fornito quando hai chiamato setLayoutParams
, quindi assicuratevi prima di farlo. Quindi, una volta fatto ciò, devi semplicemente trasmettere lo LayoutParams
che è stato restituito a LayoutParams
. so
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) linearLayout.getLayoutParams()
Inoltre, perché è necessario ottenere i parametri come questo? Cosa stai cercando di realizzare in definitiva? Chiedo perché potrebbe esserci un modo più semplice per fare ciò che stai cercando di fare ...
In effetti, la risposta alla tua domanda è SÌ, devi lanciare i LayoutParam che ottieni da getLayoutParams perché questo è un metodo derivato dalla classe View che restituisce la superclasse di LayoutParams che è ViewGroup.LayoutParams che, a causa del polimorfismo, può essere convertito nel tipo che si sa essere.
Spiacente, il tipo che restituisce da linearLayout.getLayoutParams non ha nulla in comune con la classe di layout che contiene linearLayout. Per quanto riguarda la praticità, assegnarmi la classe padre 'LayoutParams è insensato - se ne ho bisogno, potrei trasmettere linearLayout a ViewsGroup e prendere i suoi getLayputParams e renderli universali. Ma Android mi dà * solo * ViewsGroup.LayoutParams. – Gangnus
Poiché è ambiguo, non può essere restituito un tipo specifico di LayoutParams mentre non è un tipo generico. Il sistema non può sapere di che tipo si tratta. La tua domanda non ha senso per me. – lulumeya
Se linearLayout ha una classe di LinearLayout, la funzione linearLayout.getLayoutParams è quella della classe LinearLayout e potrebbe facilmente restituire la classe LinearLayout.LayoutParams. Dov'è l'errore? – Gangnus