我是新來的Android和在我的項目有一定的要求我如何設置所選選項卡必須在中間
即我有六個選項卡,但我秀只有三個在屏幕上的標籤和標籤的其餘部分我用滾動型。這裏選定的標籤項目必須在中間,首先當我進入屏幕時,我顯示中間項目處於活動狀態(即選中狀態)。
這很好,但我如何設置這個中間項目作爲中間當我滾動其餘標籤?
有人可以給出解決方案的建議。
我是新來的Android和在我的項目有一定的要求我如何設置所選選項卡必須在中間
即我有六個選項卡,但我秀只有三個在屏幕上的標籤和標籤的其餘部分我用滾動型。這裏選定的標籤項目必須在中間,首先當我進入屏幕時,我顯示中間項目處於活動狀態(即選中狀態)。
這很好,但我如何設置這個中間項目作爲中間當我滾動其餘標籤?
有人可以給出解決方案的建議。
我不認爲tabhost有這樣的行爲。據我所知,tabhost可以在沒有標籤控制器的情況下工作。對於您的情況,畫廊將取代選項卡控制器,如您所知,畫廊中的選定項目始終停留在中間。 然後在圖庫的事件偵聽器中,編寫一些代碼來控制哪個選項卡將顯示在tabhost中。
檢查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);
}
你看着使用偵聽器將檢測滾動和比你手動設置在回調方法selectedTab? – hovanessyan 2011-12-15 08:53:21
感謝您的建議,但我沒有工作,下面的滾動監聽器(我在XML聲明Horizaontalscrollview)TestHorizontalScrollView sView =(TestHorizontalScrollView)findViewById(R.id.horizontalScrollView);公共類TestHorizontalScrollView擴展HorizontalScrollView { \t公共TestHorizontalScrollView(上下文上下文){ \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