296

プログラムで作成している相対レイアウトがあります。

 RelativeLayout layout = new RelativeLayout( this );
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);

これで、この相対レイアウトに追加したい 2 つのボタンができました。しかし、問題は、両方のボタンが互いに重なっている RelatiiveLayout の左側に表示されていることです。

buttonContainer.addView(btn1);
buttonContainer.addView(btn2);

xml で行うように、ボタンのandroid:layout_alignParentRight="true" または 属性をプログラムで設定する方法を知りたいですか?android:layout_toLeftOf="@id/btn"

4

4 に答える 4

660

LayoutParamsを使用してコードからアクセスできますView.getLayoutParams。何LayoutParamsにアクセスするかを十分に認識しておく必要があります。これは通常、内部の子が含まれViewGroupているかどうかを確認することで実現されます。その場合は、それを使用する必要があります。LayoutParamsあなたの場合、それはRelativeLayout.LayoutParamsです。あなたが使用することになりRelativeLayout.LayoutParams#addRule(int verb)ますRelativeLayout.LayoutParams#addRule(int verb, int anchor)

コードを介してアクセスできます。

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)button.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of);

button.setLayoutParams(params); //causes layout update
于 2011-01-09T12:04:40.903 に答える
13
  1. 参照する必要があるボタンの作成と id が必要です。 btn1.setId(1);
  2. params 変数を使用してレイアウトにパラメーターを追加できます。メソッドは だと思います。このオブジェクトaddRule()の Android Java ドキュメントを確認してください 。LayoutParams
于 2011-01-09T11:27:21.630 に答える