2015-02-09 4 views
1

Как я могу отобразить Tabhost в нижней половине экрана, отображая статическое изображение (ни при каких обстоятельствах нельзя перезагружать/перерисовывать каждый раз, когда вы прокручиваете).Half-screen TabHost

+--------------------------+---+---+ 
| =      | * | ? | < Action Bar with Help, Settings and 
+--------------------------+---+---+  a sliding drawer from the left 
|         |  should be present. 
|         | 
|         | 
|    static    | < This should, regardless of the tab 
|   picture/map   | < selected, be the same. 
|         | 
|         | 
|         | 
+----------------------------------+ 
| TAB1 | TAB2 | TAB3 | TAB4 | TAB5 | < There will be about 20 Tabs, if 
+----------------------------------+  that is of any relevance 
|         | 
|  TEXTTEXTTEXTTEXTTEXTTEXT  | < Only the Text should, depending on 
|  TEXTTEXTTEXTTEXTTEXTTEXT  | < the selected Tab, be switched 
|  TEXTTEXTTEXTTEXTTEXTTEXT  | < accordingly. 
|  TEXTTEXTTEXTTEXTTEXTTEXT  | 
|         | 
+----------------------------------+ 

Если это невозможно, что я могу использовать? У меня есть глава TextSwitcher, но на самом деле это не очень приятная сплошная анимация tabHost.

Большое спасибо.

ответ

0

Один из способов сделать это будет иметь два вертикально расположенных Fragment с в вашем Activity следующим образом:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<fragment android:name="com.whatever.ImageFragment" 
      android:id="@+id/image_fragment" 
      android:layout_weight="1" 
      android:layout_height="0dp" 
      android:layout_width="match_parent" /> 

<fragment android:name="com.whatever.TabHostFragment" 
      android:id="@+id/tabhost_fragment" 
      android:layout_weight="2" 
      android:layout_height="0dp" 
      android:layout_width="match_parent" /> 

</LinearLayout> 

Верхняя Fragment будет удерживать MapView или ImageView, а нижний фрагмент содержал бы FragmentTabHost с текст Fragment s. Обратите внимание, что в этом случае FragmentTabHost будет вынужден использовать метод getChildFragmentManager() для получения текста Fragment.