diadia

興味があることをやってみる。自分のメモを残しておきます。

kotlin android レイアウトファイルを結合する方法について

レイアウトファイルを結合するとは

レイアウトファイルに他のレイアウトファイルを合体させて一つのレイアウトファイルとして機能させることをいう。

レイアウトファイルを結合する目的

レイアウトファイルはres/layout以下にファイルを作成する。一つのレイアウトファイルにたくさん書くと可読性が落ちるため、スッキリさせるためにレイアウトファイルを結合する。レイアウトファイルに同じ内容を何度も書く場合に重複して書くことを避けるために結合をする。

結合する手続き

参考:
https://qiita.com/sussan0416/items/531b77be1676a30b8fab

  1. 結合するレイアウトファイルを作成する
  2. 結合先のレイアウトファイルに結合するファイルの内容を記述する

結合するレイアウトファイル(子)を作成する

レイアウトファイルを新たに作成する場合には、res/layoutディレクトリ上で右クリックをする。Newを選択し、続いてLayout Layout resource fileを選択する。すると作成するレイアウトファイルのファイル名等を決めることになる。これらの手続きを終わらせるとレイアウトファイルが作成されるので、View等を記述すれば良い。

結合先のレイアウトファイル(親)に結合するファイルの内容を記述する

結合先のレイアウトファイルにはタグとしてincludeを使うことと、結合させるレイアウトファイルの指定を行う。

<include layout="@layout/item_card_content" android:id="@+id/inclued_card"/>
<!-- @layout以下はレイアウトファイル名を記述する --> 

結合したレイアウトファイルの要素をアクティビティで取得する方法

findViewByIdを2回使えば結合したレイアウトファイルのViewを取得する事ができる。

//例
val inclued_view = findViewById<LinearLayout>(R.id.oya_layout).findViewById<TextView>(R.id.ko_layout)

疑問:結合するレイアウトをActivityで使用することができるのか