2011-07-26 18 views
6

¿Qué clase debo usar al configurar LayoutParams de mi LinearLayout? Los dos siguientes no funcionan:ClassCastException al agregar LayoutParams

  1. linLayout.setLayoutParams(new ViewGroup.LayoutParams(50,50));
  2. linLayout.setLayoutParams(new android.widget.LinearLayout.LayoutParams(50,50));

si consigo los parametros en primer lugar, cambiar ellos y los puso de vuelta que está funcionando. Entonces, supongo que los Params que obtengo son heredados de ViewGroup.LayoutParams ...

¿Alguna idea? THX

Respuesta

12

Utilice los LayoutParams del elemento primario. Entonces, en caso de que LinearLayout sea hijo de RelativeLayout, entonces use linLayout.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(50,50));

+0

loco, eso es genial :) ¿por qué usar estos parámetros y no los parámetros LinearLayout? – Frempe

+1

No conozco una respuesta exacta, pero las vistas usan LayoutParams para decirles a sus padres cómo quieren ser distribuidos. Y esto es específico para el padre (depende del tipo de Diseño primario). Entonces también cuando estás lanzando linlayout.getLayoutParams, ejecútalo en (RelativeLayout.LayoutParams) en este caso. –

+0

ah tiene sentido, THX! – Frempe

Cuestiones relacionadas