动态切换一个LinearLayout中的多个布局

时间:2011-10-15 23:18:57

标签: android layout include

我的应用程序中有一个微调器和一个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);}     
}

2 个答案:

答案 0 :(得分:1)

您还可以将所有LinearLayouts放在FrameLayout中,然后只需更改它们的可见性。

答案 1 :(得分:0)

另一种处理方法是使用android ViewFlipper。这允许您在其下添加多个孩子。并且viewflipper一次只能使用

这样的行显示1个孩子
viewflipper.setDisplayedChild(1);

它还允许在视图之间切换时输入和输出动画。

这些是它的教程

Tutorial 1Tutorial 2