215

実行時にRelativeLayoutを作成するときに、android:layout_belowプログラムで同等のものを設定することは可能ですか?

4

4 に答える 4

480

はい:

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_belowView#setLayoutParams次に、それらのパラメータを取得したいビューを呼び出すだけです。

于 2010-07-18T21:20:29.687 に答える
153

または、ビューの現在のレイアウト パラメータを使用して変更することもできます。

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
于 2014-02-11T15:22:14.443 に答える
12

@jackofallcode の回答は正しいですが、1 行で記述できます。

((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
于 2017-11-07T11:42:16.733 に答える