2016-05-11 13 views
0

Mein Hauptlayout besteht aus drei Ansichten. Ich werde das Ansichts-Label, wo ich weiß nicht, wie zu implementieren es MysteriousView:Wie kann ich meine Ansicht während des Betriebs in Android austauschen?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools"> 
    <TextView 
     android:id="@+id/TextView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
    <MysteriousView 
     android:id="@+id/MysteriousView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
    <TextView 
     android:id="@+id/TextView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

Dann habe ich drei großen Tisch Ansichten, die in ihren eigenen .xml Dateien definiert sind. Manchmal möchte ich TableView1 in MysteriousView anzeigen und manchmal möchte ich TableView2 in MysteriousView anzeigen.

TableView1 hat 7 Zeilen und 5 Spalten. TableView2 hat 6 Zeilen und 6 Spalten. TableView3 hat 5 Zeilen und 5 Spalten. Ich mache ungefähr 50 Änderungen über die Lebensdauer der Aktivität.

Ich möchte in der Lage sein, sie so schnell wie möglich miteinander zu ersetzen. Es wäre gut, wenn die Umschaltzeit weniger als 100 ms beträgt.

Was ist der beste Weg, um diese Änderungen zu implementieren?

+0

Lesen Sie über Fragmente hier: http://developer.android.com/guide/components/fragments.html –

Antwort

1

Das Verhalten, das Sie beschreiben, wird in Android von einem Fragment unterstützt.

aus dem Zitat Android Fragment documentation

Sie mehrere Fragmente in einer einzigen Aktivität kombinieren können eine Mehrscheiben-UI zu bauen und ein Fragment in mehreren Aktivitäten wiederzuverwenden. Sie können ein Fragment als ein modularer Abschnitt einer Aktivität denken, die ihren eigenen Lebenszyklus hat, ihre eigenen Eingabeereignisse erhält, und die Sie hinzufügen oder entfernen können, während die Aktivität ausgeführt wird (Art wie eine "Unteraktivität") , die Sie in verschiedenen Aktivitäten wiederverwenden können).

und später:

Wenn Sie ein Fragment als Teil Ihrer Tätigkeit Layout hinzufügen, sie lebt in eine Viewgroup innerhalb der Ansichtshierarchie Aktivität und das Fragment definiert seine eigene Ansicht Layout. Sie können ein Fragment in Ihr Aktivitätslayout einfügen, indem Sie das Fragment in der Datei der Aktivität als <Fragment> oder aus Ihrem Anwendungscode deklarieren, indem Sie es einer vorhandenen ViewGroup hinzufügen .

Da Fragmente sind sehr mächtige Werkzeuge für eine Benutzeroberfläche verwalten, indem sie komplexer ist, als einfach einen Blick in eine bestehende Viewgroup tauschen, und ich kann nicht eine vollständige Lösung in einer Antwort beschreiben Stackoverflow, aber es ist lohnt sich die Mühe, über sie zu erfahren (see the link above)

Verwandte Themen