我正在使用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(),它看起来非常好。这是一个滚动视图。有人可以帮助我。
答案 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