Android - Tabhost in ScrollView
-
26-10-2019 - |
Frage
Ich schreibe eine App, die verschachtelte Registerkarten implementiert. Da zwei Registerkartenmenge ein wenig Platz einnehmen, und im Allgemeinen, weil die Art des Inhalts den gesamten inneren Tabhost in eine scrollbare Struktur einbringen möchte. Ich kann Tabcontent des Framelayouts der äußeren Aktivität, linearlayout, sogar ViewFlipper erstellen. Wenn ich versuche, es scrollview zu machen, stürzt das Programm ab.
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ScrollView
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
Anscheinend lebt Tabhost gern in nicht-krollbaren Frames. Gibt es eine Möglichkeit, dies zu umgehen, ohne viel Chaos zu schaffen?
Lösung
Entschuldigung, ich habe es alleine herausgefunden. Die Lösung besteht darin, den zweiten Tabhost in eine Scrollview in eine eigene XML -Datei einzuwickeln. Das funktioniert gut.
Äußere:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
Innere:
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ViewFlipper
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
</ScrollView>