What does it mean to inflate a view from an xml file?

前端 未结 6 1754
情书的邮戳
情书的邮戳 2020-11-28 17:35

I am new to android development and keep coming across references to Inflating views from a layout xml file. I googled and searched the development guide but still wasn\'t

6条回答
  •  醉话见心
    2020-11-28 17:41

    Inflating is the process of adding a view (.xml) to activity on runtime. When we create a listView we inflate each of its items dynamically. If we want to create a ViewGroup with multiple views like buttons and textview, we can create it like so:

    Button but = new Button();
    but.setText ="button text";
    but.background ...
    but.leftDrawable.. and so on...
    
    TextView txt = new TextView();
    txt.setText ="button text";
    txt.background ... and so on...
    

    Then we have to create a layout where we can add above views:

    RelativeLayout rel = new RelativeLayout();
    
    rel.addView(but);
    

    And now if we want to add a button in the right-corner and a textview on the bottom, we have to do a lot of work. First by instantiating the view properties and then applying multiple constraints. This is time consuming.

    Android makes it easy for us to create a simple .xml and design its style and attributes in xml and then simply inflate it wherever we need it without the pain of setting constraints programatically.

    LayoutInflater inflater = 
                  (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true);
    //now add menuLayout to wherever you want to add like
    
    (RelativeLayout)findViewById(R.id.relative).addView(menuLayout);
    

提交回复
热议问题