Est-il possible lors de la création de RelativeLayout au moment de l'exécution de définir l'équivalent de Android:layout_below
par programme?
Oui:
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);
Tout d'abord, le code crée de nouveaux paramètres de mise en page en spécifiant la hauteur et la largeur. La méthode addRule
ajoute l'équivalent du xml correctement Android:layout_below
. Ensuite, vous appelez simplement View#setLayoutParams
sur la vue que vous voulez avoir ces paramètres.
Sinon, vous pouvez utiliser les paramètres de présentation actuels et les modifier:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
Bien que @jackofallcode answer soit correct, vous pouvez l'écrire sur une seule ligne:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);