Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Inflate view from XML in Android?

I'm creating a tableLayout [given in XML]

adding table Row [created in XML and inflating in Java]

also adding 2 textview to the table Row [created in XML and inflating in JAVA]

I'm able to get only the background and textcolors but not the layout properties like width, height and margin to get table view.

like image 389
Gnanam R Avatar asked Apr 12 '12 12:04

Gnanam R


People also ask

What is inflate XML?

In this context, Inflate means reading a layout XML (often given as parameter) to translate them in Java code.

What does inflate a view mean Android?

"Inflating" a view means taking the layout XML and parsing it to create the view and viewgroup objects from the elements and their attributes specified within, and then adding the hierarchy of those views and viewgroups to the parent ViewGroup.


1 Answers

  1. First declare your inflater.

    LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService
      (Context.LAYOUT_INFLATER_SERVICE);
    
  2. Identify and inflate the new view you seek to project on the current view.

    View view = inflater.inflate(R.layout.new_layout,null);
    
  3. You would want to add your new inflated view to your layout.

    main.addView(view);
    

You can reference additional information here: http://developer.android.com/reference/android/view/LayoutInflater.html

Update May 2019 (Kotlin): This is how you would inflate a view from XML in Kotlin. this is referring to an activity.

val view = this.layoutInflater.inflate(R.layout.dialog_upgrade, null)
mainLayout.addView(view)
like image 52
ChallengeAccepted Avatar answered Sep 22 '22 08:09

ChallengeAccepted