调用Class以在RelativeLayout子元素中显示Table

时间:2016-12-15 15:37:44

标签: android relativelayout

我有一个问题。

我有一个创建大表的复杂类:

Table(Context context,String[][] matrix)

我使用说明从ActivityMain调用该类:

 Table table = new Table(this,Matrix);
 setContentView(table);

完美地将桌子扩展到所有屏幕。

这是问题所在。现在我想要工具栏菜单的一些空间,所以我修改XML以这种方式创建它:

RelativeLayout

          Toolbar Menu (child)

          RelativeLayout (child)

RelativeLayout

但是当我打电话给班级来创建表格时,仍然将它展开很长时间所有的屏幕,我看不到菜单。我的想法是在工具栏菜单下面的第二个RelativeLayout内创建表。

但我不知道该把它放在这里:

Table table = new Table(_____HERE______,Matrix);

 setContentView(table);

我不想修改课程Table,因此有一种方法可以在ActivityMain中显示第二个RelativeLayout内的表格让我看到ToolbarMenu

谢谢!

1 个答案:

答案 0 :(得分:0)

您没有在布局中添加Table,而是替换它。

最简单的解决方法是在您的活动布局中创建一个容器layout,例如FrameLayout,并在其中添加Table

<?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" >

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:id="@+id/toolbar"/>

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

</RelativeLayout>

在你的活动中做:

setContentView(R.layout.main_activity);

FrameLayout container = (FrameLayout) findViewById(R.id.container);
container.addView(new Table(this,Matrix));