2011-12-06 4 views
0

Androidでネストされたタブを使用しましたが、私の要件は選択されたタブがミドルにある必要があります。私はそれを解決しようとしましたが、その解決策は見つかりませんでした。アンドロイドのタブ位置を交換する方法

解決策を教えてもらえますか?

私のActivityにタブを配置する次のコードです。

for (int i = 0; i < activitis.length; i++) 
{ 
position = i; 
intent1 = new Intent().setClass(this, Tab_team.class); 
intent1.putExtra("tabactivity", activitis[i]); 
spec = tabHost.newTabSpec(activitis[i]).setIndicator(activitis[i], 
res.getDrawable(images[i])).setContent(intent1); 
tabHost.addTab(spec); 
} 

答えて

0

クリックしたタブボタンを中央のタブボタンにしたいと思っています。

問題を処理する1つの方法は、ボタンを使用してタブ間の切り替えを処理することです。これについては、あなたのxmlファイルを次のように変更してください。

<FrameLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TabWidget android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:visibility="gone"/> 
     <LinearLayout android:layout_width="fill_parent" 
      android:layout_height="64dip"> 
      <Button android:layout_height="fill_parent" 
       android:layout_width="0dip" 
       android:layout_weight="1.0" 
       android:background="@drawable/ic_tab_artists" 
       android:id="@+id/artist_id" 
       android:onClick="tabHandler"/> 
      <Button android:layout_height="fill_parent" 
       android:layout_width="0dip" 
       android:layout_weight="1.0" 
       android:background="@drawable/ic_tab_artists" 
       android:id="@+id/album_id" 
       android:onClick="tabHandler"/> 
      <Button android:layout_height="fill_parent" 
       android:layout_width="0dip" 
       android:layout_weight="1.0" 
       android:background="@drawable/ic_tab_artists" 
       android:id="@+id/song_id" 
       android:onClick="tabHandler"/> 
     </LinearLayout> 
</FrameLayout> 

ここでは、タブウィジェットと配置ボタンを非表示にしています。すべてのボタンは同じメソッドを呼び出します。そして、ボタンリスナー内で行うことができます。

public void tabHandler(View target){ 
    tab1Btn.setSelected(false); 
    tab2Btn.setSelected(false); 
    tab3Btn.setSelected(false); 
    target.setSelected(true); 
    if(target.getId() == R.id.artist_id){ 
     tabHost.setCurrentTab(0); 
    } else if(target.getId() == R.id.album_id){ 
     tabHost.setCurrentTab(1); 
    } else if(target.getId() == R.id.song_id){ 
     tabHost.setCurrentTab(2);  
    } 
} 

ここでは、タブホストを使用してタブを切り替えます。この同じメソッドでは、クリックされたボタンを削除し、それを外部レイアウトの中央に挿入するコードを記述することができます。 解決方法は簡単ですが、試行錯誤が必要です。しかし、これは要件を処理する一つの方法です。

関連する問題