天天看點

XXXfragment that is not a fragment錯誤,fragment認不出來

要注意的是fragment其實是有兩個版本的,一個是

import android.support.v4.app.Fragment;

另外一個是

import android.app.Fragment;

這兩個版本的fragment是不會相容的。也就是說要不就全用fragment,要不就全用v4 fragment,不能混搭着用。

在這裡我強烈建議初學者用第二個,也就是簡單的fragment,接下來我說說兩者的差別大家就知道為什麼了。

1.最低支援版本不同

android.app.Fragment 相容的最低版本是android:minSdkVersion="11" 即3.0版

android.support.v4.app.Fragment 相容的最低版本是android:minSdkVersion="4" 即1.6版

2.需要導jar包

fragment android.support.v4.app.Fragment 需要引入包android-support-v4.jar

3.在Activity中取的方法不同

android.app.Fragment使用 (ListFragment)getFragmentManager().findFragmentById(R.id.userList)  獲得  ,繼承Activity(這個僅僅需要繼承自最簡單的activity)

android.support.v4.app.Fragment使用 (ListFragment)getSupportFragmentManager().findFragmentById(R.id.userList) 獲得 ,需要繼承android.support.v4.app.FragmentActivity

4.我感覺最重要的,是XML标簽的使用

android.app.Fragment可以使用<fragment>标簽的,這點很重要,如果是用android.support.v4.app.Fragment的話,是不能是用<fragment>标簽的,會抛出android.view.InflateException:

Binary XML file line #7: Error inflating class fragment異常。

因為這個标簽的使用還是比較簡單的,是以還是比較傾向前者