布局加载
常规方法加载内容布局
//包裹 activity 对应的 FrameLayout 父布局,原内容布局根节点下 layout 属性生效
setContentView(R.layout.activity_main)
或者
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
布局加载器加载布局
//获取布局加载器
LayoutInflater layoutInflater = LayoutInflater.from(context);
//加载布局 resourceId:布局 id,root 指定父布局 容器布局调
//用 addView 添加子布局
layoutInflater.inflate(resourceId, root);
//root != null 并且 boolean 值为 true 时,被加载的布局的layout属性会生效
layoutInflater.inflate(resourceId, root,boolean);
布局加载器动态加载 Demo:
布局容器
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
item 布局
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" >
</Button>
动态加载布局
public class MainActivity extends Activity {
private LinearLayout mainLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainLayout = (LinearLayout) findViewById(R.id.main_layout);
LayoutInflater layoutInflater = LayoutInflater.from(this);
View buttonLayout = layoutInflater.inflate(R.layout.button_layout, null);
mainLayout.addView(buttonLayout);
}
}