我最近一直在玩标签,这是一个问题。以下循环创建具有动态布局的动态选项卡。但是,当我运行应用程序时,只创建了第一个选项卡内容,并且只有当我尝试选择第二个选项卡时,才会创建第二个选项卡内容。
我想立即访问第二个标签布局,如果我尝试从第一个标签页执行此操作,则在选择第二个标签页之前应用程序崩溃。
Tabs = (TabHost) findViewById(android.R.id.tabhost);
Tabs.setup();
for (count =0;count < all_rooms_count;count++){
NewTab.setContent(new TabHost.TabContentFactory()
{
public View createTabContent(String tag)
{
RelativeLayout ll = new RelativeLayout(MainActivity.this);
ll.setLayoutParams(params);
ll.setId(passedTabId);
return ll;
}
});
Tabs.addTab(NewTab);
}
是否可以强制循环为所有选项卡创建选项卡内容 ?
答案 0 :(得分:0)
首先,它为每个选项卡创建一个单独的TabContentFactory。最好保留一个TabContentFactory实例并将其用于所有Tabs。
无需仅在createTabContent方法内创建选项卡内容。您可以一次创建所有视图(甚至是外部),并在选择相应的选项卡时返回。
RelativeLayout l1=..;
RelativeLayout l2=..;
RelativeLayout l3=..;
RelativeLayout l4=..;
TabContentFactory factory=new TabContentFactory(){
public View createTabContent(String tagId){
if(tagId.equals(TAG1))
return l1;
}else if(tagId.equals(TAG2)){
return l2;
}else if(tagId.equals(TAG3)){
return l3;
}
};