在应用中有时候需要通过某些点击效果动态地添加布局,而不是直接加载完整的xml布局文件,这时就可以在代码中实现。
首先,如果对子布局的位置有要求时,可以在主布局中你希望放置的地方设置一个“标记”,记得设置id:
<LinearLayout //用来装子布局
android:id="@+id/box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
private LinearLayout mLinearLayout;//对应于主布局中用来添加子布局的View
private View mGridView;// 子Layout要以view的形式加入到主Layout
mGridView = View.inflate(this,R.layout.gridview_layout,null);
mLinearLayout = (LinearLayout)findViewById(R.id.box);
最后一步:
mLinearLayout.addView(mGridView);
通过addview()就能把子布局添加到主布局里的box中了。
另外,addview不仅能添加一个已经定义好的xml文件,也能直接创建添加控件或者布局,控制位置和样式的时候,布局和控件使用的方法是一样的。