2011-04-26 59 views
0

大家好 我想寫一個選項卡活動,其中每個選項卡都有一個指標的自定義視圖。 視圖膨脹,像這樣:Android:在TabWidget中,有沒有辦法讓包含標籤的視圖?

LayoutInflater inflater = (LayoutInflater) 
      context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     specIndicatorView = inflater.inflate(R.layout.tab_indicator, null); 

     indicatorIv = (ImageView)specIndicatorView.findViewById(R.id.indicatorImage); 
     indicatorTv = (TextView)specIndicatorView.findViewById(R.id.indicatorText); 

     indicatorIv.setImageDrawable(context.getResources().getDrawable(indicatorImageRes)); 
     indicatorTv.setText(indicatorTextRes); 

的問題是,在子視圖中定義的佈局參數不影響它,這是因爲我不知道如何在父視圖傳遞到膨脹方法。

所有我想要做的是有一個圖像和一些文本,圖像對齊到頂部和文本對齊指示器視圖的底部,但我也需要一些小的調整,需要我使用這個指標策略。 我看過整個標籤機制的來源,無法弄清楚如何獲得父視圖,你知道如何做到這一點嗎? 你有更好的方法來實現我所需要的嗎?

感謝

回答

2

你說你看過所有的標籤代碼;在您的活動中只需撥打getTabWidget()有什麼不對?

+0

Hi Yoni,正如我之前所說的,我需要一個「查看」對象,而標籤部件不是這樣。 可以調用getChildTabViewAt()方法,但是有兩個問題:a)我想創建帶有視圖的子選項卡,但獲取子選項卡視圖將只返回一個構建選項卡,並且b )這隻會返回內容視圖,而我認爲並不是更大的容器視圖 – ekatz 2011-04-26 18:25:51

+0

我想我錯過了這裏的觀點。如果要使用tabSpec的'setIndicator'方法爲選項卡使用自定義佈局,請使用'getTabWidget()'而不是'null'作爲佈局填充器的第二個參數。請參閱Google IO 2010 Scheduling應用程序:http://code.google.com/p/iosched/source/browse/trunk/src/com/google/android/apps/iosched/ui/ScheduleActivity.java#147 – 2011-04-26 18:59:20

+0

I'對不起,你是對的,我正在使用getTabWidget()。findViewById(android.R.id.tabs),但getTabWidget的作品,以及我錯過了這個事實,該選項卡Widget是一個視圖組以及... 謝謝! – ekatz 2011-04-26 20:23:25

0

你試圖從標籤活動之一中訪問TabHost?如果是這樣,你應該能夠通過getParent()從兒童活動中獲得TabHost

+0

我實際上並不希望獲得父級活動,而是使用「視圖」對象,此外,我在TabActivity中嘗試這樣做並將其發送給充氣器 – ekatz 2011-04-26 15:45:11

+0

您的哪個'View'對象是你試圖去? TabHost? – 2011-04-26 15:50:02

+0

無論視圖是tabindicator視圖的容器 – ekatz 2011-04-26 16:08:36

相關問題