㈠ 安卓的v4包明明有 getChildFragmentManager 方法為什麼調用不到
區別就是: 3.0以下:getSupportFragmentManager() 3.0以上:getFragmentManager() 因為3.0以下版本 是沒有fragment的api 所以必須藉助V4包裡面的getSupportFragmentManager()方法來間接獲取FragmentManager()對象。 3.0版本之後,有了Fragment的api,就可以直接使用getFragmentManager()這個方法來獲取了。
㈡ android.support.v4.app.Fragment 使用問題
使用上是沒有區別的
fragment是安卓3.0以上才引入的新東西
如果你想兼容3.0以下的版本,那麼你就要使用v4包的
如果你的app本身不是 minSDK >14的,你可以直接用android.app包下面的
請採納哈
㈢ fragment app和v4包下的有什麼區別
Fragment是在android3.0時加入的,要想在更低版本的系統中使用,需要引入support v4包使用其中的Fragment。v4的4指的是android api版本,api 4 對應android1.6系統,所以使用v4下的Fragment可以兼容至android 1.6,而使用不導入support包的Fragment,只能兼容至3.0,這是他們主要的區別。再有就是使用support包中的Fragment可能有一些相關方法名字里要多「support」以與默認的做區分,這是部分api的區別。如何選擇看項目來定,現在大部分應用都不需要兼容到4.0以下了,可以直接使用Fragment。如果考慮兼容3.0以下的版本可以選擇v4的。
另外,v4、v7、v13、v17等等這些support包主要作用就是讓對應的4、7、13等android api版本支持一些新的特性。
㈣ app包中的fragment和v4包中的fragment的使用的區別
app包中的fragment和v4包中的fragment的使用的區別
1、盡量不要用app包中的fragment,因為這個是在3.0之後才有的,支持的版本太高,在低版本中是是用不了的
2、android.support.v4.app.Fragment:可以兼容到1.6的版本,
3、關於這兩個fragment使用<fragment>標簽的問題
(1)app.fragment和v4.fragment都是可以使用<fragment>標簽的
只是在在使用的時候如果是app.fragment則沒有什麼特殊的地方繼承Activity即 可。
(2)當v4.fragment使用<fragment>標簽的時候就要特別注意了:
當這個Activity的布局中有<fragment>標簽的時候,這個Activity必須繼承
FragmentActivity,否則就會報錯
08-27 08:25:04.946: E/AndroidRuntime(9839): Caused by:
java.lang.ClassCastException:
com.example.android_fragment_bottom.fragments.TopBarFragment cannot be
cast to android.app.Fragment
此時如果不卜繼成FragmentActivity的話 編譯系統會把<fragment>認為是app包中的Fragment來處理。但是此時我們導入的是v4包中的Fragment
Android官方文檔中的Fragment的例子就是以app包中的Fragment來講解的。
(3)app包中關於Fragment的類和方法在V4包中都是有相應的對應的
㈤ 如何引入android-support-v4/Fragment
的特性,但是通過庫的引入,我們可以將包含fragment的程序運行在1.6上面,保證程序兼容性)。
步驟:
1. 通過SDK Manager下載Android Support Package。
2. 在項目代碼頂層創建libs文件夾,並將你需要的jar庫文件拷貝到libs裡面去。
3. 更新manifest文件,設置如下
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
為了確保沒有在舊的系統上面使用新的api特性,卻要在使用Fragment的文件中包含如下內容:
import android.support.v4.app.Fragment;
㈥ android 中fragment有什麼優點
1.Fragment是android3.0引入的新控制項,果應用使用在3.0以下、1.6及以上的版本,需要引入v4包。
2.Fragment支持在不同的Activity中使用並且可以處理自己的輸入事件以及生命周期方法等。
3.Fr期方法依賴於Activity的生命周期,例如一個Activity的onPause()的生命周期方法被調用的時候這個Activity中的所有的Fragment的onPause()方法也將被調用。
4.FragmentManager提供了對Activity運行時的Fragment的添加、刪除、替換的操作。在Activity運行期間可以添加Fragment而不是在XML布局文件中進行定義。如果打算在Activity中改變Fragment的生命過程。如果要執行添加、刪除、修改的操作,必須通過FragmentManager的對象獲得一個FragmentTransaction對象,通過它的API來執行這些操作。
5.兩個單獨的Fragment之間是不應該進行通信的。應該使用他們所存在的Activity作為溝通的紐帶。
㈦ android.support.v4.app.Fragment和 android.app.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 android.support.v4.app.Fragment使用 (ListFragment)getSupportFragmentManager().findFragmentById(R.id.userList) 獲得 ,需要繼承android.support.v4.app.FragmentActivity
㈧ 安卓的v4包明明有 getChildFragmentManager 方法為什麼調用不到
這個方法是Fragment的方法,用來在Fragment上管理Fragment;
使用時,如果用的V4包,會碰到no Activity錯誤,是因為v4包沒重置childFragmentManager,重寫父Fragment的onDetch方法,來解決:
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}`
㈨ 如何引入android-support-v4/Fragment
1將libs文件夾中的android-support-v4添加到構建路徑,選中文件夾中的android-support-v4.jar包,滑鼠右鍵選中「Build Path——Add to Build Path」,那麼在當前項目的Referenced Libraries下多了添加的android-support-v4包.
2選中當前項目,滑鼠右鍵「Build Path——Configure Build Path」在右邊窗口中看到上一步添加的android-support-4包,然後展開,看到Source attachment:(None),說明我們的源碼還沒關聯,點擊「Edit」按鈕開始關聯
3在彈出的「Source Attachment Configure」配置窗口中,第一個選項「Workspace location」選擇當前工作間的路徑,第二個選項「External location」選擇外部的路徑,我們的android-support-v4源碼存放在sdk的Extras文件夾中,我們選擇第一個選項,
4選擇「External location」後,我們發現旁邊有「External file」和「External folder」兩個按鈕,External file選擇的是JAR或ZIP壓縮包,External folder選擇的是文件夾,這里我們選擇「External folder」
5在本地找到安裝SDK所在目錄,並在該目錄中找到extras文件夾,依次進入到src目錄(/sdk/extras/android/support/v4/src"),選中src文件夾即可。
㈩ app包中的fragment和v4包中的fragment的使用的區別
使用上是沒有區別的,Fragment是android3.0引入的新控制項,如果項目本身就是4.0以上的話,那麼可以直接引用app包下的。
1. Fragment是android3.0引入的新控制項,果應用使用在3.0以下、1.6及以上的版本,需要引入v4包。
2. Fragment支持在不同的Activity中使用並且可以處理自己的輸入事件以及生命周期方法等。
3. Fragment的生命周期方法依賴於Activity的生命周期,例如一個Activity的onPause()的生命周期方法被調用的時候這個Activity中的所有的Fragment的onPause()方法也將被調用。
4. FragmentManager提供了對Activity運行時的Fragment的添加、刪除、替換的操作。在Activity運行期間可以添加Fragment而不是在XML布局文件中進行定義。如果打算在Activity中改變Fragment的生命過程。如果要執行添加、刪除、修改的操作,必須通過FragmentManager的對象獲得一個FragmentTransaction對象,通過它的API來執行這些操作。