2012-09-05 93 views
0

我試圖添加Fragement內TabHost佈局:TabHost內片段

public class FriendsTabFregment extends Fragment { 

    private TabHost tab; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.activity_friends, container, false); 
     tab = (TabHost) view.findViewById(R.activity_friends.tab); 
     return view; 
    } 
} 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);    
     addNewTab("Friends", BasicFragment.class, savedInstanceState); //Chat Tab 
     setTabHeight(50);  
    } 

由於某種原因,我得到的選項卡爲空。 這是我的XML:

<TabHost android:id="@+activity_friends/tab" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="4"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/> 
    </LinearLayout> 
</TabHost> 


</LinearLayout> 

任何想法,爲什麼?

回答

0

定義您TabHost的ID作爲

android:id="@+id/activity_friends_tab" 

,並發現它是這樣的:

tab = (TabHost) view.findViewById(R.id.activity_friends_tab); 

看一看這個職位的"@+id/"

What does "@+id" mean?

進一步瞭解

Android documentation source

+0

當我沒有使用片段時,它是如何工作的,沒有問題? –

+0

使用Fragment時,是否用'@ + id /'替換它? –

+0

[這篇文章描述瞭如何使用帶有碎片的TabHost](http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/) –