Odpowiedzi:
Tak:
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);
Najpierw kod tworzy nowe parametry układu, określając wysokość i szerokość. addRule
Metoda dodaje równowartość xml prawidłowo android:layout_below
. Następnie wystarczy wywołać View#setLayoutParams
widok, który chcesz mieć te parametry.
Alternatywnie możesz użyć widoków bieżących parametrów układu i zmodyfikować je:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
a nie tworzyć nowe. W rzeczywistości należy to zaakceptować jako prawidłową odpowiedź.
Chociaż odpowiedź @jackofallcode jest poprawna, można ją zapisać w jednym wierszu:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
do ustawieniasetLayoutParams