我有一个xml-布局文件main,其中有两个文本视图a/B和一个视图C。
我还有另外两个xml——布局文件option1和option2。
是否可以在运行时通过Java将option1或option2加载到C中?如果是,我必须使用什么功能
您可以随时替换任何视图
int optionId=someExpression?R.layout.option1:R.layout.option2;
视图C=findViewById(R.id.C);
ViewGroup parent=(ViewGroup)C.getParent();
int index=parent.indexOfChild(C);
父。移除视图(C);
C=getLayoutInflater()。充气(optionId,父项,false);
parent.addView(C,索引);
如果您不想替换现有的视图,而是在初始化时在选项1/option2之间进行选择,那么您可以更轻松地执行此操作:为父布局设置android:id,然后:
ViewGroup parent=(ViewGroup)findViewById(R.id.parent);
视图C=GetLayoutFlater()。充气(选项ID,父项,false);
parent.addView(C,索引);
您必须根据视图结构将“索引”设置为适当的值。也可以使用视图存根:将C视图添加为视图存根,然后:
ViewStub C=(ViewStub)findViewById(R.id.C);
C.setLayoutResource(选项ID);
C.充气();
这样,如果要重新构造XML布局,就不必担心上面的“索引”值