2011-06-17 77 views
1

我正在創建一個android應用程序,並試圖在圖片和一些文本下添加三個選項卡。在android中,如何將標籤放在包含頂部圖像的視圖中?

______________________________ 
| _____________    | 
| |   | text  | 
| | picture | text  | 
| |   | text  | 
| —————————————    | 
| _______ ________ _______ | 
| | tab | | tab | | tab | | 
| ———————————————————————— | 
| |      | | 
| |      | | 
| |  content  | | 
| |  here   | | 
| |      | | 
| |      | | 
|       | 
—————————————————————————————— 

我不知道該怎麼做。 任何想法將不勝感激。 謝謝。

回答

1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="image_source/> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <TextView 
     android:id="@android:id/text1" 
     android:text="some text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
     <TextView 
     android:id="@android:id/text2" 
     android:text="some text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
     <TextView 
     android:id="@android:id/text3" 
     android:text="some text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
    </LinearLayout> 
    </LinearLayout> 
    <TabHost 
    android:id="@+id/my_tab_viewer" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp"> 
     <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" 
      android:padding="5dp" /> 
    </LinearLayout> 
    </TabHost> 
</LinearLayout> 

這應該爲您提供的基本結構,然後在你的活動添加您的標籤:從http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

採取

TabHost tabHost = (TabHost) findViewById(R.id.my_tab_viewer); 
TabHost.TabSpec spec = tabHost.newTabSpec("artists").setIndicator("Artists", 
        res.getDrawable(R.drawable.ic_tab_artists)) 
       .setContent(intent); 
tabHost.addTab(spec); 

Java源代碼示例您可能需要調整layout_width,layout_height對於XML中的每個組件,我沒有測試該佈局。

+0

哦很酷。非常感謝你。這非常有幫助 –

0

聽起來像Android TabHost小部件就是您在標準Activity子類(Android的TabActivity可能對您提議的佈局太不靈活)中尋找的。

TabHost是一個小部件,它提供一個標籤欄和一個FrameLayout來顯示每個標籤的內容。您可以使用RelativeLayout(首選)或LinearLayout將其放置在佈局中的圖片/文本下方。

+0

好的。謝謝。我知道我需要使用TabHost。我是否需要製作主佈局TabHost,或者我可以使用FrameLayout並在其中放置一個TabHost。如果我確實需要將主佈局設置爲TabHost,那麼如何將標籤放在不變的圖像和文本下方。 –

+1

您在圖中標記爲「content here」的區域是您嵌入到TabHost中的FrameLayout。 TabHost還要求您嵌入TabWidget以顯示選項卡。 Google在他們的網站上提供了一個教程(http://developer.android.com/resources/tutorials/views/hello-tabwidget.html) – mportuesisf

相關問題