2016-12-15 3 views
0

Ich habe ein Problem.Aufruf einer Klasse zum Anzeigen einer Tabelle in RelativeLayout Kind

Ich habe eine komplexe Klasse, die eine große Tabelle erstellen:

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

ich von der ActivityMain die Klasse rufen Sie die Anweisungen mit:

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

Und perfekt arbeiten, um den Tisch, um alle dem Bildschirm erweitern .

Hier ist das Problem. Jetzt mag ich etwas Platz für das Toolbar-Menü, so ändere ich die XML es auf diese Weise zu erstellen:

RelativeLayout 

      Toolbar Menu (child) 

      RelativeLayout (child) 

RelativeLayout 

Aber wenn ich die Klasse nenne die Tabelle zu erstellen, noch erweitern sie einen langen ganzen Bildschirm und ich kann das Menü nicht sehen. Meine Idee ist, die Tabelle innerhalb der zweiten RelativeLayout zu erstellen, die unter Toolbar Menu ist.

Aber ich weiß nicht, was hier zu setzen, um es zu machen:

Table table = new Table(_____HERE______,Matrix); 

setContentView(table); 

Ich will nicht die Klasse Table, modifizieren, so gibt es eine Möglichkeit, es in ActivityMain zu tun, um die Tabelle anzuzeigen innerhalb Sekunde RelativeLayout, um mich die ToolbarMenu sehen zu lassen?

Danke !!

Antwort

0

Sie fügen nicht Table Layout, aber es ersetzt wird.

Der einfachste Weg, um es zu lösen, ist einen Container layout zum Beispiel FrameLayout in Ihrem Aktivitätslayout zu erstellen und Table darin hinzuzufügen.

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

Und in Ihrer Tätigkeit zu tun:

setContentView(R.layout.main_activity); 

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

Dank Roman, perfekt arbeitet jetzt =) –

+0

Gut, Marke Frage beantwortet, bitte. –

Verwandte Themen