Android 在一个线性布局中动态切换多个布局

Android 在一个线性布局中动态切换多个布局,android,layout,include,Android,Layout,Include,我的应用程序中有一个微调器和一个线性布局。当微调器中的项发生更改时,LinearLayout应该包含不同的布局(也就是一个不同的xml文件)。我尝试过使用View.inflate方法,但布局从未改变。我该怎么解决这个问题 spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?>

我的应用程序中有一个微调器和一个线性布局。当微调器中的项发生更改时,LinearLayout应该包含不同的布局(也就是一个不同的xml文件)。我尝试过使用View.inflate方法,但布局从未改变。我该怎么解决这个问题

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parentView,
                View selectedItemView, int position, long id) {
            changeForm(id);
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            ;
        }
    });

}

private void changeForm(long id) {
    LinearLayout formLayout=(LinearLayout)findViewById(R.id.type_layout);
    if(id==0){View.inflate(this, R.layout.text, formLayout);}
    else if(id==3){View.inflate(this, R.layout.phonecall, formLayout);}     
}
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图,
视图选择编辑视图,整数位置,长id){
变更形式(id);
}
@凌驾
未选择公共无效(AdapterView arg0){
;
}
});
}
私有无效变更单(长id){
LinearLayout formLayout=(LinearLayout)findViewById(R.id.type_布局);
如果(id==0){View.inflate(this,R.layout.text,formLayout);}
如果(id==3){View.inflate(this,R.layout.phonecall,formLayout);}
}

您也可以将所有线性布局放在一个视图中,然后只需更改它们的可见性。

另一种处理方法是使用android ViewFlipper。这允许您在其下添加多个子项。并且viewflipper一次只能显示一个子对象,使用类似

viewflipper.setDisplayedChild(1);
它还允许在视图之间切换时进行输入和输出动画

这些是它的教程

,