回答:
はい:
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);
最初に、コードは高さと幅を指定して新しいレイアウトパラメータを作成します。このaddRule
メソッドは、xmlに相当するものを適切に追加しますandroid:layout_below
。次にView#setLayoutParams
、これらのパラメーターを設定するビューを呼び出すだけです。
または、ビューの現在のレイアウトパラメータを使用して、それらを変更することもできます。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
は、新しいビューを作成するのではなく、既存のものを使用する必要があります。実際、これは正解として受け入れられるべきです。
@jackofallcodeの答えは正しいですが、1行で記述できます。
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
を設定する必要があるため、実際にレイアウトを変更することはできませんsetLayoutParams