Risposte:
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);
Innanzitutto, il codice crea un nuovo parametro di layout specificando l'altezza e la larghezza. Il addRule
metodo aggiunge correttamente l'equivalente dell'xml android:layout_below
. Quindi fai semplicemente clic View#setLayoutParams
sulla vista che desideri avere quei parametri.
In alternativa è possibile utilizzare i parametri di layout correnti delle viste e modificarli:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
piuttosto che crearne di nuovi. In realtà, questa dovrebbe essere accettata come la risposta corretta.
Mentre la risposta di @jackofallcode è corretta, può essere scritta in una riga:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
per impostarli consetLayoutParams