【发布时间】:2015-06-10 16:59:44
【问题描述】:
main.xml:
<FrameLayout id="parent">
<ImageView layout_width="match_parent" layout_height="match_parent"/>
</FrameLayout>
ActivityMain.java
onCreate() {
super.onCreate();
setContentView(R.layout.nain);
ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
TextView textView = new TextView(this);
textView.setText("Hello, world");
parent.addView(textView);
// parent.addView(textView, 0);
// parent.addView(textView, 1);
// parent.bringChildToFont(textView);
}
我将上面的代码膨胀为内容,然后,如何将另一个视图添加到 FrameLayout 并且它位于 ImageView 的顶部?
我已经尝试了几个小时,但仍然不知道如何以编程方式将另一个视图添加到 FrameLayout 的顶部。
我发现通过在 XML 文件中添加两个子项很容易实现目标。最后,我使用 ViewStub 并完成了我的工作。
但我很好奇如何在没有 ViewStub 的情况下执行此操作。
我的解决方案:
main.xml:
<FrameLayout id="parent">
<ImageView layout_width="match_parent" layout_height="match_parent"/>
<ViewStub id="stub">
</FrameLayout>
widget_text_view.xml:
<TextView />
ActivityMain.java
onCreate() {
super.onCreate();
setContentView(R.layout.nain);
ViewStub stub = (ViewStub) findViewById(R.id.stub);
stub.setLayoutResource(R.layout.widget_text_view);
TextView textView = (TextView) stub.inflate();
}
【问题讨论】:
-
我试过 addView(View)、addView(View, index)、bringChildToFront(childView),在这种情况下都不起作用。
-
你能把代码贴在你尝试以编程方式添加的地方吗
标签: android android-framelayout