在我的Android动作中,我需要动态地(在运行时)在布局中的特定位置添加一个视图。要添加的视图在运行时确定。例如,可能看起来像这样的布局:动态添加视图的Android布局占位符
<LinearLayout ...>
<TextView ... />
<!-- Dynamic item to be added here -->
<TextView ... />
</LinearLayout>
实现此目的的最佳方法是什么?
一种解决方案是使用layout.addView(view, index)
,但我宁愿不要硬编码索引。
另一种解决方案是使用的FrameLayout作为占位符,和地点可以在的FrameLayout内部动态视图,例如:
<LinearLayout ...>
<TextView ... />
<FrameLayout android:id="@+id/placeholder" />
<TextView ... />
</LinearLayout>
然后:
findViewById(R.id.placeholder).addView(view);
然而,这增加了一个不必要的视图在层次结构中。
什么是推荐的方式做到这一点?
谢谢。我最终使用'findViewById(R.id.placeholder).addView(view);',其中占位符可以是一个FrameLayout,或者任何其他布局,如果视图只需添加在最后,如ScrollView。 – Ralf 2012-04-02 13:08:43
你可能会得到这样的嵌套的意见,这可能导致在某些情况下stuckoverflowerror,一个深树由于对UI线程 – 2013-09-27 05:22:10