我的应用程序中有一个微调器和一个LinearLayout。当微调器中的项目发生更改时,LinearLayout应该包含不同的布局(不同的xml文件也是LinearLayout)。我尝试过使用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);}
}
答案 0 :(得分:1)
您还可以将所有LinearLayouts放在FrameLayout中,然后只需更改它们的可见性。
答案 1 :(得分:0)
另一种处理方法是使用android ViewFlipper。这允许您在其下添加多个孩子。并且viewflipper一次只能使用
这样的行显示1个孩子viewflipper.setDisplayedChild(1);
它还允许在视图之间切换时输入和输出动画。
这些是它的教程