7

我是新來的Android和在我的項目有一定的要求我如何設置所選選項卡必須在中間

即我有六個選項卡,但我秀只有三個在屏幕上的標籤和標籤的其餘部分我用滾動型。這裏選定的標籤項目必須在中間,首先當我進入屏幕時,我顯示中間項目處於活動狀態(即選中狀態)。

這很好,但我如何設置這個中間項目作爲中間當我滾動其餘標籤?

有人可以給出解決方案的建議。

+0

你看着使用偵聽器將檢測滾動和比你手動設置在回調方法selectedTab? – hovanessyan 2011-12-15 08:53:21

+0

感謝您的建議,但我沒有工作,下面的滾動監聽器(我在XML聲明Horizaontalscrollview)TestHorizo​​ntalScrollView sView =(TestHorizo​​ntalScrollView)findViewById(R.id.horizo​​ntalScrollView);公共類TestHorizo​​ntalScrollView擴展Horizo​​ntalScrollView { \t公共TestHorizo​​ntalScrollView(上下文上下文){ \t super(context); \t} \t @覆蓋 \t保護無效onScrollChanged(INT升,INT噸,INT oldl,INT oldt){ \t \t \t super.onScrollChanged(L,T,oldl,oldt); \t} \t} – Gopi 2011-12-15 09:01:41

回答

0

我不認爲tabhost有這樣的行爲。據我所知,tabhost可以在沒有標籤控制器的情況下工作。對於您的情況,畫廊將取代選項卡控制器,如您所知,畫廊中的選定項目始終停留在中間。 然後在圖庫的事件偵聽器中,編寫一些代碼來控制哪個選項卡將顯示在tabhost中。

7

檢查this了:)

public void centerTabItem(int position) { 
    tabHost.setCurrentTab(position); 
    final TabWidget tabWidget = tabHost.getTabWidget(); 
    final int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); 
    final int leftX = tabWidget.getChildAt(position).getLeft(); 
    int newX = 0; 

    newX = leftX + (tabWidget.getChildAt(position).getWidth()/2) - (screenWidth/2); 
    if (newX < 0) { 
     newX = 0; 
    } 
    horizontalScrollView.scrollTo(newX, 0); 
} 
相關問題