我在创建片段时遇到了问题。在我的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的好处或缺点是什么......
先谢谢..
答案 0 :(得分:1)
Nepster,这是一个很好的问题。
两者之间的主要区别在于android.app.Fragment
在设备创建之前不提供任何设备支持。因此,实施FragmentActivity
会很有用。
但是,如果您想要将手机支持回Android 2,则需要使用android.support.app.Fragment
。如果您不需要知道需要支持哪些设备,那么通过提供支持来覆盖您的基地是很容易的。
FragmentActivity和Activity之间的区别在于FragmentActivity允许您使用getSupportLoaderManager()和getSupportFragmentManager(),而Activity使用getLoaderManager()和getFragmentManager()。它是优势还是劣势取决于您是否需要与FragmentActivity相关联的支持库。这是唯一的区别,FragmentActivity允许您使用支持库。