2016-12-15 60 views
0

我遇到了問題。調用一個類來在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

謝謝!

回答

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)); 
+0

感謝羅馬,現在的工作完美=) –

+0

好,標記問題的回答,請。 –

相關問題