プログラムで作成している相対レイアウトがあります:
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"
ベストアンサー1
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