相対レイアウトでボタンのlayout_align_parent_right属性をプログラムで設定するにはどうすればいいですか? 質問する

相対レイアウトでボタンのlayout_align_parent_right属性をプログラムで設定するにはどうすればいいですか? 質問する

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

 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.LayoutParamsRelativeLayout.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

おすすめ記事