Respostas:
Sim:
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);
Primeiro, o código cria um novo parâmetro de layout, especificando a altura e a largura. O addRule
método adiciona o equivalente ao xml corretamente android:layout_below
. Depois, basta acessar View#setLayoutParams
a visualização em que deseja obter esses parâmetros.
Como alternativa, você pode usar os parâmetros de layout atuais das visualizações e modificá-los:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
vez de criar novos. De fato, isso deve ser aceito como a resposta correta.
Enquanto a resposta @jackofallcode estiver correta, ela pode ser escrita em uma linha:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
defini-las comsetLayoutParams