Respuestas:
Si:
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 la altura y el ancho. El addRule
método agrega el equivalente del xml correctamente android:layout_below
. Luego solo invocas View#setLayoutParams
la vista que deseas tener esos parámetros.
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);
LayoutParams
lugar de crear otros nuevos. De hecho, esto debe ser aceptado como la respuesta correcta.
Si bien la respuesta @jackofallcode es correcta, se puede escribir en una línea:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
para configurarlossetLayoutParams