2012-03-26 19 views
2

Androidタブを変更することは可能ですか?タブを押すとタブホストの中心に移動します。 3つのタブだけが表示され、いくつのタブがあるかは関係ありません。 Android 4.0 Googleミュージックアプリのように! もしそうなら、あなたはどうしますか?Androidタブホストのアクティブなタブ

ありがとうございました!

答えて

6

私は自分自身で答えを見つけました。
他の誰かがそれを必要とする場合、これはそれを行う必要があります。

final HorizontalScrollView mHorizontalScrollView; 
    float scale = getResources().getDisplayMetrics().density; 
    final double tabWidth = (int) (150 * scale + 0.5f); 

    for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) { 
     tabHost.getTabWidget().getChildTabViewAt(i).getLayoutParams().width = (int) tabWidth; 
    } 

    final double screenWidth = getWindowManager().getDefaultDisplay() 
      .getWidth(); 
    mHorizontalScrollView = (HorizontalScrollView) findViewById(R.id.hscrollview); 

    tabHost.setOnTabChangedListener(new OnTabChangeListener() { 

     @Override 
     public void onTabChanged(String tabId) { 
      int nrOfShownCompleteTabs = ((int) (Math.floor(screenWidth 
        /tabWidth) - 1)/2) * 2; 
      int remainingSpace = (int) ((screenWidth - tabWidth - (tabWidth * nrOfShownCompleteTabs))/2); 

      int a = (int) (tabHost.getCurrentTab() * tabWidth); 
      int b = (int) ((int) (nrOfShownCompleteTabs/2) * tabWidth); 
      int offset = (a - b) - remainingSpace; 

      mHorizontalScrollView.scrollTo(offset, 0); 
     } 
    }); 
+0

おかげでトンbuddy.uは私の一日を救った:)それはあなたのために働いていた – Nevaeh

+0

はうれしい:) – user754730

関連する問題