Kotlin

Kotlin:xmlを使わずにコードでUIを配置する!


どうも、ささおです。

 

今回はxmlファイルをほぼ触らずに、UIを配置します。

iOSを触っているとコード上でUIを配置ことが多く、Androidでの方法がわからなかったので調べてみました。

 

コードで配置する流れ

1, activity_main.xmlのConstraintLayoutにIDを指定する。

2, MainActivity.ktで1のConstraintLayoutを引っ張ってくる。

3, 配置するUIをインスタンス化する。

4, 3でインスタンス化したUIにサイズを指定する。

5, 2で引っ張ってきたConstraintLayoutに3,4でいじったUIを配置する。

 

1,activity_main.xmlのConstraintLayoutにIDを指定する。

デフォルトのconstraintLayoutにIDを指定します。

(ConstraintLayoutでやる理由はデフォルドがConstraintLayoutになっているからという理由以外はありません。むしろコードでの触りやすさはLinearLayoutの方があるような気がします。)

 

追加したものはこちらです。

ConstraintLayoutに「constraintLayout」というIDを指定しました。

 

2, MainActivity.ktで1のConstraintLayoutを引っ張ってくる

こんな感じになります。

 

こちらの行を追加しました。

いつものfindViewByIdを使用して、xmlからConstraintLayoutを引っ張ります。

 

3, 配置するUIをインスタンス化する

Button(this)でインスタンス化することができます。

今回はわかりやすいようにtextを入力しました。”sasao”としましたが、なんでも大丈夫です!

 

4, 3でインスタンス化したUIにサイズを指定する

追加したのは2行です。

まず1行目でサイズを作成しています。

LinearLayout.LayoutParams(width: ,height: )

となっていてwidhtもheightもWRAP_CONTENTにしているので文字に合わせて大きさが変わります!

 

2行目では、1行目で作成したサイズをインスタンス化したbuttonに指定しています。

 

5, 2で引っ張ってきたConstraintLayoutに3,4でいじったUIを配置する

最後に、2で引っ張ってきたconstraintLayoutにbuttonを配置します。

配置するためにはaddView()を使用します。

 

このようになります。

以上です!!


コメントを残す

*