无法将子视图添加到RelativeLayout

时间:2016-08-29 10:45:20

标签: android android-layout

我正在使用https://github.com/bmelnychuk/AndroidTreeView来显示基于树的菜单。我肯定错过了一些非常基本的东西,我需要另一只眼睛来检查我的错误。根据库,我们动态创建一个视图(基本上是一个scrollview),并将它作为子项添加到RelativeLayout。下面是我的布局XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/reload_menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="re load menu" />

    <RelativeLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/reload_menu"></RelativeLayout>

</RelativeLayout>

以下是我如何将我的root添加到此RelativeLayout

AndroidTreeView tView = new AndroidTreeView(getApplicationContext(), root);

    RelativeLayout container = (RelativeLayout) findViewById(R.id.container);
    container.addView(tView.getView());

即使这行代码没有任何异常执行,我也看不到树视图的显示。我还检查了tView.getView(),它看起来非常好。这是一个滚动视图。有人可以帮助我。

1 个答案:

答案 0 :(得分:2)

如果您的视图只有一个子视图,则不需要使用RelativeLayout。请改用 FrameLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:id="@+id/reload_menu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="re load menu" />

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/reload_menu"></FrameLayout>

</RelativeLayout>

我在match_parent 上更改layout_height,如果您的按钮应该在FrameLayout之上,然后设置其他属性android:layout_below="@id/reload_menu",它甚至可以使用match_parent属性。你的主要问题是我认为 layout_height 上的match_content,因为滚动视图必须有一些高度才能适应它。

尝试使用当前上下文(活动代码):

AndroidTreeView tView = new AndroidTreeView(this, root); //this is Activity