For example: To add a button, view to a linearlayout is a button and the parent view is linearlayout. The properties of the child view are set by Layoutparams. Note that the linearlayout.layoutparams, because the height of the child view, the width of these are for the parent view, to tell the Father view how much space they want to occupy, so it is linearlayout (originally will always use the layoutparams of the child view to set, error)
public class myactivity extends activity { private Context mContext; private LinearLayout mLinearLayout;
private LinearLayout.LayoutParams mLayoutParams; @Override public void OnCreate (bundle savedinstancestate) { Super.oncreate (savedinstancestate); setcontentview ( R.layout.main); mContext = this; mLinearLayout = (linearlayout) Findviewbyid ( R.id.parent_view); mlayoutparams = new linearlayout.layoUtparams (viewgroup.layoutparams.wrap_content, viewgroup.layoutparams.wrap_content); button button = new button (MContext); button.settext ("Add button"); mlinearlayout.addview (button, mlayoutparams); } }
<linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"
android:orientation= "Vertical" android:layout_width= "Fill _parent " android:layout_height= "Fill_parent" > <LinearLayout android:id= "@+id/parent_view" android:orientation= "Vertical" android:layout_width= "Match_parent" android:layout_height= "Wrap_content"/> </LinearLayout>
Android addview Dynamic to activity Add View component
This article mainly describes how to dynamically add layouts and controls to the UI interface. In the programming time many times need to display some content dynamically, when dynamically adds the view, the main use AddView method.
1. Introduction to the AddView method
in Android, you can use the AddView function of the layout view to add dynamically generated view objects to the layout view. The
example is as follows:
Activity code:
public class helloworld extends activity {
Public void oncreate (bundle savedinstancestate) {super.oncreate (savedInstanceState);
Setcontentview ( R.layout.main );
Obtain linearlayout object linearlayout ll = (linearlayout) Findviewbyid (R.ID.VIEWOBJ);
Add textview to linearlayout Textview tv = new textview (this);
Tv.settext (Hello world);
ll. addview ( tv );
Add button 1 to linearlayout Button b1 = new button (this);
B1.settext (cancellation);
ll. addview ( b1 );
Add button 2 to linearlayout Button b2 = new button (this);
B2.settext (OK);
ll. addview ( b2 );
Removal of button 1 ll. removeview ( b1 ) from linearlayout ; }
}
The position of the above code is in a vertical order because the interface code linerlayout orientation set is vertical, but for the sake of beauty, you need to set the location and style of the added view. When you add a view, there are two categories to introduce, one is the layout (for example: LinearLayout, etc.), one is the control (for example: Button,textview, etc.). )
2. Dynamically adding layouts (including styles and locations)
The following example describes how to dynamically add a layout that is consistent with the code above and focuses on controlling the placement of the added layout. Use the Layoutparam class when controlling the location of the layout.
Example:
The interface code is similar to the interface code above and is not repeated.
Activity Class Part code:
Relativelayout RL = new Relativelayout (this);
Sets the width-height relativelayout.layoutparams rellayoutparams=new relativelayout.layoutparams of the Relativelayout layout
( layoutparams.wrap_content,layoutparams.wrap_content);
This.addview (RL, Rellayoutparams);
3. Dynamically adding controls
Dynamically adding controls and adding layouts are similar, and the following code focuses on controlling the position of the control, adding the following code and the second item to add the layout, adding controls to the newly added layout.
The interface code is also not duplicated.
Activity Class Part code:
relativelayout rl = new relativelayout (this); Sets the width and height relativelayout.layoutparams rellayoutparams=new relativelayout.layoutparams of the relativelayout layout (
Layoutparams.wrap_content,layoutparams.wrap_content);
Textview temp = new textview (this);
Temp .setid (1);
Temp.settext ("picture");
Rl.addview (temp);
Textview tv = new textview (this);
Tv.settext ("writing");
Tv.setid (2); Layoutparams param1 = new layoutparams (layoutparams.wrap_content,layoutparams.wrap_content
);
Param1.addrule (relativelayout.below, 1);//This control Rl.addview (TV,PARAM1) below the control with ID 1;
Button update = new button (this);
Update.settext (Button); Layoutparams param2 = new layoutparams (layoutparams.wrap_content,layoutparams.wrap_content
);
Param2.addrule (relativelayout.right_of, 1);//This control is Rl.addview (UPDATE,PARAM2) to the right of the control with ID 1; This.addview (rl, rellayoutparams);
Note that the layout and controls use the same method when controlling the location and style.