/ / Android tabcontent obsahuje scrollview, ktorý skrýva obsah za kartami - android, scrollview, android-tabhost

Karta Android obsahuje obsah scrollview, ktorý skrýva obsah za kartami - android, scrollview, android-tabhost

Mám rozloženie, ktoré obsahuje Tabhost. Záložky sú v spodnej časti obrazovky. Prvá záložka spustí ActivityGroup. Prvá aktivita v tomto ActivityGroup obsahuje scrollview. Keď sa obsah zobrazí v rolovači a prejdete úplne nadol, spodná časť rolovacieho zoznamu sa skryje za kartami. Máte nejaké nápady ako to vyriešiť?

Keď spustím skupinu aktivít, používam tento kód:

Window window = getLocalActivityManager().startActivity(pActivityClass.getName(), intent);
setContentView(window.getDecorView());

Je dekor zobrazený na celej obrazovke? Chcem len to, aby bol pohľad na tabcontent. Tu je hlavné usporiadanie:

<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">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_alignParentTop="true"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
</TabHost>

Tu je zobrazenie, ktoré chcem v službe tabcontent:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<RelativeLayout android:id="@+id/myLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextView android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"/>

... a bunch of other components ...

</RelativeLayout>
</ScrollView>

odpovede:

4 pre odpoveď č. 1

Oprava rozloženia tak, aby obsahový obsah zapadol nad miniaplikáciu tabulátora, namiesto toho, aby vyplnil celý nadradený kontajner, ktorý mu povie, aby rozložil ako plnú veľkosť RelativeLayout a potom položte TabWidget na vrchu. Niečo podobné:

<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">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@android:id/tabs"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
</TabHost>

Tiež som odstránil niektoré zbytočné položky, ako je android:orientation ktorý nerobí nič vnútri RelativeLayout.

HTH


1 pre odpoveď č. 2

Optimálny výsledok.

android: minWidth = Zvýšenie hodnoty ...


    <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:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none" >

<TabWidget
**android:minWidth="480dp"**
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

</TabWidget>

</HorizontalScrollView>

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>

1 pre odpoveď č. 3
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@android:id/tabs"/>

Tu je kľúčovým riadkom:

android:layout_above="@android:id/tabs"

0 pre odpoveď č. 4

Viem, že by to mohol byť "správny" spôsob, ako som to urobil, ale ja som len dodal

<LinearLayout android:layout_width="fill_parent"
android:layout_height="50dp"></LinearLayout>

do spodnej časti súboru XML, ktorý som načítal do karty.

Užívateľ user1060374 má tiež právo potrebovať FrameLayoutAk chcete, aby obsah bol nad tabuľkou Tabwidget, alebo sa bude rolovacie okno skrývať (v hornej časti), ak sa obsah bude posúvať. Ale práve to nerobí odpoveď na vašu otázku, tak som pridal polstrovanie.