Из того, что я понимаю, вы хотите, чтобы нажатая кнопка вкладки стала центральной кнопкой вкладки.
Один из способов решения вашей проблемы - использовать кнопки для переключения между вкладками.Для этого измените ваш 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);
}
}
Здесь я переключаю вкладки, используя хост вкладок.В этом же методе вы можете написать код, чтобы удалить нажатую кнопку и снова вставить его в среднее положение внешнего слоя.Там могут быть более простые решения, но вам нужно будет сделать проб и ошибок, как это.Но это один из способов справиться с требованием.