In meiner App verwende ich die TabView mit partiellen Ansichten in jedem Tab-Element. So ist der Inhalt für jede Tab-Ansicht in eigenen xml, js, css Dateien aufgeteilt.
Warum also nicht einfach diesen Ansatz wählen und ihn mit Ihrer Option 2 kombinieren?
Sie mit einem Haupt-Ansicht erstellen konnte:
- ActionBar
- Centered Hauptinhalt für Teilansichten (Stapel- og Gridlayout)
- SegmentedBar an der Unterseite für Navigationstasten
Wenn der Benutzer eine Schaltfläche auf der SegmentedBar antippt, ändert sich die Sichtbarkeit der entsprechenden Teilansicht.
Sie können alle Schriftart-Symbole als "Bilder" für Ihren Titel in der SegmentedBar
auch verwenden.
UPDATE: Beispiele unten hinzugefügt.
Wie Erstellen und Referenz Teilansichten
In Ihrer Hauptansicht Page-Elemente die Verweise auf jede Teilansicht hinzufügen, wie hier:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded"
xmlns:t1="partial-views/tab1"
xmlns:t2="partial-views/tab2"
xmlns:t3="partial-views/tab3">
Jede Teilansicht besteht aus einem .xml, .js und vielleicht eine .css-Datei. Ich möchte jede Teilansicht in separate Ordner legen: tab1, tab2, tab3 als Beispiel.
Die Xml-Datei mit Teilansicht enthält nur die Ansichtsmodule, keine Seitenmodule. Also fügen Sie keine Seite oder ActionBar hier hinzu. Beispiel für eine Teilansicht .xml:
<GridLayout loaded="viewLoaded">
<ListView items="{{ someItemList }}">
<ListView.itemTemplate>
...
</ListView.itemTemplate>
</ListView>
</GridLayout>
Wie Teilansichten
Jetzt verwenden, ist es an Ihnen, wie Sie die Teilansichten verwenden möchten. Hier ist ein Beispiel, wie man sie zusammen mit einer TabView
Komponente verwendet. Dies befindet sich in derselben Seitenansicht, in der Sie die Referenzen aus dem ersten Beispiel hinzugefügt haben.
<TabView>
<TabView.items>
<TabViewItem title="Tab 1" iconSource="res://tab1">
<TabViewItem.view>
<t1:tab1 />
</TabViewItem.view>
</TabViewItem>
<TabViewItem title="Tab 2" iconSource="res://tab2" >
<TabViewItem.view>
<t2:tab2 />
</TabViewItem.view>
</TabViewItem>
<TabViewItem title="Tab 3" iconSource="res://tab3" >
<TabViewItem.view>
<t3:tab3 />
</TabViewItem.view>
</TabViewItem>
</TabView.items>
</TabView>
Oder könnten Sie es ohne die TabView, tun und etwas benutzerdefinierte erstellen:
<StackLayout>
<t1:tab1 id="tab1" visibility="visible" />
<t2:tab2 id="tab2" visibility="collapsed" />
<t3:tab3 id="tab3" visibility="collapsed" />
</StackLayout>
<SegmentedBar selectedIndex="0" selectedIndexChanged="segBarSelected">
<SegmentedBar.items>
<SegmentedBarItem title="Tab 1" />
<SegmentedBarItem title="Tab 2" />
<SegmentedBarItem title="Tab 3" />
</SegmentedBar.items>
</SegmentedBar>
würde also hier selectedIndexChanged
steuern, um die Sichtbarkeit der einzelnen Teilansicht.
Das hört sich gut an! Wenn Sie ein Code-Snippet zum Teilen haben, wäre es großartig! Danke für Ihre Hilfe! –
Ok, ich habe meinen Kommentar aktualisiert und ein paar Beispiele hinzugefügt. Denken Sie, dass dies das grundlegende Muster für Teilansichten abdeckt. – Manijak
Fantastisch! Dies sollte in der Dokumentation sein =) –