質問箱にて
このような質問を頂いたので、書いている次第でございます。
LayoutInflaterは、RecyclerviewのonCreateViewHolderとか、FragmentのonCreateViewメソッドのパラメータとしてよく使われますね。
正直、全く理解していません。
何なのでしょうか?
掘り下げてみましょう。
簡単に説明すると
LayoutInflaterは、「膨らます奴」
— Reo@Android Developer (@RunningReo) June 8, 2021
英語の意味として、inflateが「膨らませる」という意味で、なんとからーは○○をする人という意味なので、inflaterは「膨らます奴」ですね。
そして、LayoutInflaterは、レイアウトを「膨らます奴」です。
これだけで、考えるという観点ではLayoutInflaterを扱えるので、思考停止は免れたかと思います。
もう少し掘り下げてみる
よくFragmentにてViewを生成する時に、LayoutInflaterクラスのinflateメソッドを用います。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.hogehoge, container, false);
}
そもそも、FragmentとはActivityを容器としてその中に部分的な画面として表示します。
ここからActivityという容器の中で、膨らませるようなイメージが出来るかなと思います。
LayoutInflaterという「膨らます奴」が、Activityという「容器」の中で、inflateという「膨らます」行為をしているわけですね。
もう少し、理論的にいうとXMLファイルを直接インスタンスせずに利用するイメージです。
第一引数は、「膨らます」XMLファイルを指定します。
第二引数は、ViewGroupでネストの一番外側のビューを表します。
第三引数は、第一パラメータで指定したレイアウトをルートビューにするか否かを
ちなみに、質問者さんのonCreateViewHolderもRecyclerViewという「容器」の中で一行分のレイアウトを「膨らませて」作っています。
この膨らませた一行分のレイアウトを使い回しているわけですね。
終わり
質問者さんに満足していただいた記事は書けたのかな・・・
もっと深掘った方が良かったのかな・・・・
取り敢えず、今の自分が掘れる範囲はここまででした。