実行時にRelativeLayoutを作成するときに、Android:layout_below
に相当するものをプログラムで設定することは可能ですか?
はい:
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);
@jackofallcodeの回答は正しいですが、1行で記述できます。
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);