2013-11-02 42 views
1

我最近在玩标签,这是一个问题。以下循环创建动态布局的动态选项卡。但是,当我运行应用程序时,只创建第一个选项卡内容,并且只有当我尝试选择第二个选项卡时,才会创建第二个选项卡内容。Android:如何强制createTabContent在所有标签中创建内容?

我想立即访问第二个选项卡布局,如果我尝试从第一个选项卡执行此操作,在选择第二个选项卡之前应用程序会崩溃。

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

首先它的冗余为每个选项卡创建一个单独的TabContentFactory。最好保留一个TabContentFactory实例并将其用于所有Tabs。

选项卡内容不需要在createTabContent方法内创建。您可以一次创建所有视图(甚至在外面),并在选择相应的选项卡bis时返回。

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; 
} 
}; 
相关问题