What is Layoutinflater ?
LayoutInflater
is a class (wrapper of some implementation or service), you can get one:
LayoutInflater li = LayoutInflater.from(context);
How to use Layoutinflater ?
You feed it an XML layout file. You need not give full file address, just its resource id, generated for you automatically in R
class. For example, a layout file which look like:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/text_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
saved as /res/layout/my_layout.xml
.
You give it to LayoutInflater
like:
View v = li.inflate(R.layout.my_layout,null,false);
What did Layout Inflater do ?
That v
is now a LinearLayout
object (LinearLayout
extends View
) , and contains a TextView
object, arranged in exact order and with all properties set, as we described in the XML above.
TL;DR: A LayoutInflater
reads an XML in which we describe how we want a UI layout to be. It then creates actual View
objects for UI from that XML.