android.support.v4.app.FragmentManager和android.app.FragmentManager之间的区别;

时间:2014-06-26 11:35:38

标签: android android-fragments android-activity fragmentmanager

我在创建片段时遇到了问题。在我的mainActivity中,我正在调用这个片段..

Fragment fr = new Article();

FragmentManager fm = getFragmentManager();

FragmentTransaction fragmentTransaction = fm.beginTransaction();

fragmentTransaction.replace(R.id.container, fr);

fragmentTransaction.addToBackStack(null);

fragmentTransaction.commit();

但它没有显示,因为我没有给出两个导入,我必须添加supprot.v4和

import android.app.FragmentManager;//correct one
import android.app.FragmentTransaction;

import android.support.v4.app.FragmentManager;// wrong one..
import android.support.v4.app.FragmentTransaction;

并且在片段类中我必须导入此

import android.app.Fragment;
//instead of the given below..
import android.support.v4.app.Fragment;

知道问题已解决..但我很好奇它们之间的区别。什么是使用片段的更好方法。我创建了一个

MainActivity which extends Activity 在那个班级我正在展示片段。

我的一位同事告诉我从Fragment扩展mainActivity。否则我将不得不面对很多问题。告诉我哪种方法正确使用。或者在使用Activity时从Fragments扩展mainActivity的好处或缺点是什么......

先谢谢..

1 个答案:

答案 0 :(得分:1)

Nepster,这是一个很好的问题。

两者之间的主要区别在于android.app.Fragment在设备创建之前不提供任何设备支持。因此,实施FragmentActivity会很有用。

但是,如果您想要将手机支持回Android 2,则需要使用android.support.app.Fragment。如果您不需要知道需要支持哪些设备,那么通过提供支持来覆盖您的基地是很容易的。

FragmentActivity和Activity之间的区别在于FragmentActivity允许您使用getSupportLoaderManager()和getSupportFragmentManager(),而Activity使用getLoaderManager()和getFragmentManager()。它是优势还是劣势取决于您是否需要与FragmentActivity相关联的支持库。这是唯一的区别,FragmentActivity允许您使用支持库。