我有 2 个选项卡,例如屏幕上显示的 Tab1 和 Tab2。让选项卡显示在纵向方向上。
Tab1 显示 Activity1,Tab2 显示 Activity2。
目前,选中的选项卡状态为Tab2。现在,我将 PORTRAIT 的方向更改为 LANDSCAPE。将方向更改为 LANDSCAPE 模式时,当前显示的是 Tab1,而不是显示 Tab2。
我的代码:
public class TabBarExample extends TabActivity {
TabHost tabHost;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
/* TabHost will have Tabs */
tabHost= (TabHost)findViewById(android.R.id.tabhost);
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid1");
firstTabSpec.setIndicator("First Tab Name").setContent(new Intent(this,FirstTab.class));
secondTabSpec.setIndicator("Second Tab Name").setContent(new Intent(this,SecondTab.class));
tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
tabHost.getTabWidget().getChildAt(0).getLayoutParams().height =40;
tabHost.getTabWidget().getChildAt(1).getLayoutParams().height =40;
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));
}
Integer lastTab = (Integer) getLastNonConfigurationInstance();
if(lastTab != null) {
tabHost.setCurrentTab(lastTab);
}
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#C35817"));
}
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));
}
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#C35817"));
}
public Object onRetainNonConfigurationInstance() {
return tabHost.getCurrentTab();
}
}