android - linearlayout - relativelayout layout params
¿Puedo configurar "android: layout_below" en tiempo de ejecución, programáticamente? (3)
¿Es posible al crear un diseño relativo en tiempo de ejecución, establecer el equivalente de android:layout_below
programáticamente?
Alternativamente, puede usar los parámetros de diseño actuales de las vistas y modificarlos:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
Sí:
RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.below_id);
viewToLayout.setLayoutParams(params);
Primero, el código crea un nuevo diseño de parámetros especificando el alto y el ancho. El método addRule
agrega el equivalente de xml correctamente a android:layout_below
. Luego, simplemente llama a View#setLayoutParams
en la vista que desea que tenga esos parámetros.
Si bien la respuesta de @jackofallcode es correcta, se puede escribir en una línea:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);