У меня уже есть виджет вкладки, который может изменить цвет своей дочерней вкладки, когда он был выбран. Но это глючит, границы моего виджета вкладки Android работают не всегда хорошо. иногда линии границ становятся белыми, когда я выбираю другую вкладку, чтобы было понятно, это мой код для моей деятельности. Извините, если я не могу предоставить изображения, потому что я не заработал много репутации здесь, при переполнении стека.
@SuppressWarnings("deprecation")
public class TabHostActivity extends TabActivity {
private TabHost tabHost;
private int currentTab = 0;
private int lastTab = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_tabhost);
UserAccount userAccount = new UserAccount();
tabHost = (TabHost) findViewById(android.R.id.tabhost);
TabSpec tab1 = tabHost.newTabSpec("First Tab");
tab1.setContent(new Intent(this, HomeActivity.class));
tab1.setIndicator("",getResources().getDrawable(R.drawable.home_icon));
tabHost.addTab(tab1);
TabSpec tab2 = tabHost.newTabSpec("Second Tab");
tab2.setContent(new Intent(this, About.class));
tab2.setIndicator("",getResources().getDrawable(R.drawable.about_icon));
tabHost.addTab(tab2);
TabSpec tab3 = tabHost.newTabSpec("Third Tab");
tab3.setContent(new Intent(this, GridViewActivity.class));
tab3.setIndicator("",getResources().getDrawable(R.drawable.gallery_icon));
tabHost.addTab(tab3);
getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId)
{
currentTab = getTabHost().getCurrentTab();
setCurrentTabColor();
lastTab =currentTab;
}
});
getTabWidget().getChildAt(lastTab).setBackgroundColor(Color.GRAY);
}
public void setCurrentTabColor(){
getTabWidget().getChildAt(currentTab).setBackgroundColor(Color.GRAY);
getTabWidget().getChildAt(lastTab).setBackgroundColor(Color.parseColor("#FCAFA6"));
}
}
это мой xml для tabhost, в котором цвет фона моего виджета вкладки установлен на розовый
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="#FCAFA6" >
</TabWidget>
</LinearLayout>
</TabHost>
TabActivity
и другие классы, которые устарели более 3 лет? - person ianhanniballake   schedule 12.11.2014