Usando LinearLayout.LayoutParams programáticamente

Tengo algunos problemas con LayoutParams de Android. Básicamente, estoy tratando de crear una aplicación que sea completamente dinámica, con todos los diseños generados mediante programación y prácticamente nada más allá de mi pantalla de bienvenida comprometida con XML. Estoy teniendo cierto éxito con los diseños lineales y la aplicación muestra todo lo que quiero. Solo estoy teniendo algunos problemas para ajustar los diseños. por ejemplo, forzar mi pie de página a la parte inferior de la pantalla, estirar las barras de botones para cubrir todo el ancho, etc.

Por lo que puedo decir, la forma de lograr esto mediante programación es usando el método setLayoutParams. Mi problema es que no estoy seguro de cómo obtener la información en los parámetros de diseño. En este momento estoy usando el constructor LinearLayout.LayoutParams (int ancho, int alto), pero no he encontrado una forma de configurar los parámetros una vez que se crea. En su lugar, me gustaría usar el constructor LinearLayout.LayoutParams (Context c, AttributeSet attrs), pero no puedo encontrar la forma correcta de declarar un AttributeSet.

¿Alguien puede ayudarme?

preguntado el 12 de junio de 12 a las 21:06

2 Respuestas

Mire todos los métodos "establecidos" para LinearLayout aquí:

http://developer.android.com/reference/android/widget/LinearLayout.html

Respondido el 12 de junio de 12 a las 21:06

Wow, debo haber estado cansado cuando escribí esto. Me quedé atascado en los parámetros de diseño y me perdí la respuesta obvia... Gracias por la respuesta. - Bevan Timm

Prueba como a continuación -

android.view.ViewGroup.MarginLayoutParams params = (MarginLayoutParams) surfaceView.getLayoutParams();
params.height = DesireHeight;
params.width = DesireWidth;
params.leftMargin = DesireMarginLeft;
params.topMargin = DesiremarginTop;
params.rightMargin = DesireMarginRight;
params.bottomMargin = DesireMarginBottom;
YOURView.setLayoutParams(params);

Respondido el 20 de junio de 12 a las 09:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.