我有一个xml布局文件主要包含两个textview A/B和一个视图C. 比我有两个其他xml布局文件option1
和option2
。 是否有可能在运行时将option1
或option2
通过Java加载到C中?如果是这样,我必须使用什么功能?Android布局替换视图与运行时的另一个视图
146
A
回答
319
您可以取代在任何时间任何观点。
int optionId = someExpression ? R.layout.option1 : R.layout.option2;
View C = findViewById(R.id.C);
ViewGroup parent = (ViewGroup) C.getParent();
int index = parent.indexOfChild(C);
parent.removeView(C);
C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
如果你不想更换现有查看,但在初始化时选项1 /选项2之间选择,那么你可以这样做更容易:
ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
View C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
:父布局,然后设置
android:id
根据视图结构,您必须将“索引”设置为适当的值。你也可以使用一个ViewStub:增加你的C视图ViewStub然后:
ViewStub C = (ViewStub) findViewById(R.id.C);
C.setLayoutResource(optionId);
C.inflate();
这样,你就不必担心上面的“指数”值,如果你将要调整你的XML布局。
36
如果你这样做,很多时候,你可以使用一个ViewSwitcher或ViewFlipper缓解视图替换。
相关问题
- 1. Android:动态替换布局的视图
- 2. 用另一个视图替换视图
- 3. OBJC视图替换另一个视图
- 4. 用另一个视图替换视图
- 5. 在android中动态替换另一个视图的视图?
- 6. Android自定义列表视图布局到另一个布局
- 7. Android - 显示键盘时;隐藏一个布局视图并且屏蔽另一个布局视图。怎么样?
- 8. 布局视图下方另一个编程创建的视图
- 9. 从另一个布局访问视图
- 10. 如何用ViewFlipper中的另一个视图替换视图
- 11. 视图在相对布局中与另一个视图一起移动?
- 12. Android布局:每行一个图像和两个EditText视图
- 13. 布局中的Android视图
- 14. 如何用另一个替换局部视图?
- 15. Android:如何动态替换一个列表视图与另一个像Instagram一样的列表视图onClick?
- 16. ASP.NET MVC调用另一个局部视图的局部视图
- 17. 将视图/布局充气到另一个布局?
- 18. 如何将视图/布局充气到另一个子布局?
- 19. 包含布局在另一个布局中填充视图
- 20. 转换动画与视图布局
- 21. Android - 在运行时缩放视图组(布局)
- 22. 切换视图/布局
- 23. 对另一个视图进行视图
- 24. Android布局与自定义视图
- 25. 相对布局与列表视图android
- 26. Android更新布局/视图
- 27. Android相对布局从另一个视图alignCenter
- 28. 与iPhone 5视图布局
- 29. 从另一个局部视图渲染局部视图
- 30. 从另一个局部视图刷新局部视图,asp.net mvc4
我必须删除片段,还是将片段也删除? – 2014-07-07 23:59:56
@KarlMorrison这个问题已经快4年了,与碎片无关。我建议提交一个新问题和/或看一下'android.app.FragmentTransaction',它是'replace()'方法。 – lupz 2014-07-11 09:13:41
这太遗憾了你的回答太复杂了 - 对于新手Android程序员来说:-( – 2015-02-04 21:07:09