【问题标题】:Add view to the top of FrameLayout将视图添加到 FrameLayout 的顶部
【发布时间】: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


【解决方案1】:

是的,您可以将项目添加到另一个视图的顶部。 android:layout_gravity 属性。访问This。或This

【讨论】:

  • 我已经知道如何通过在 XML 文件中放置两个子 View 来实现目标,但是在这种情况下,我只想在该布局文件中放置一个子视图,然后以编程方式添加一些子视图这将在 GroupView 的顶部,比如说,我可以看到以编程方式添加的孩子。 (我无法通过addChild() 方法看到它们)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多