Ker*_*rry 156 android android-fragments android-fragmentactivity
我的问题是除了明显的继承差异之外,Fragment和之间的主要区别是FragmentActivity什么?每个班级最适合哪些场景?我试图理解为什么这两个类都存在......
Gun*_*son 277
A Fragment是一部分Activity,其中包含:
Activity运行时添加或删除.一个Fragment必须始终嵌入Activity.
Fragments不属于HoneyComb(3.0)之前的API.如果您想Fragments在面向HoneyComb之前的平台版本的应用中使用,您需要将支持包添加到您的项目中并使用它FragmentActivity来保存您的Fragments.本FragmentActivity类有处理的API Fragments,而Activity类,蜂窝状前向,其实不然.
如果您的项目仅针对HoneyComb或更新,那么您应该使用Activity而不是FragmentActivity保留您的Fragments.
一些细节:
使用android.app.Fragment带Activity.使用android.support.v4.app.Fragment带FragmentActivity.不要将支持包添加Fragment到a,Activity因为它会导致抛出异常.
需要注意的事项:FragmentManager并LoaderManager为FragmentActivity提供单独的支持版本:
如果您使用的Fragment是Activity(HoneyComb及以上版本),请致电
getFragmentManager() 要得到 android.app.FragmentManagergetLoaderManager() 要得到 android.app.LoaderManager如果你Fragment在a FragmentActivity(预HoneyComb)中使用a ,请致电:
getSupportFragmentManager()得到android.support.v4.app.FragmentManager.getSupportLoaderManager() 要得到 android.support.v4.app.LoaderManager所以,不要这样做
//don't do this
myFragmentActivity.getLoaderManager();
//instead do this:
myFragmentActivity.getSupportLoaderManager();
Run Code Online (Sandbox Code Playgroud)
要么
//don't do this:
android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager();
//instead do this:
android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
Run Code Online (Sandbox Code Playgroud)
同样有用的是,虽然片段必须嵌入其中,Activity但它不必是Activity布局的一部分.它可以用作活动的隐形工作者,没有自己的UI.
将FragmentActivity视为可以支持Fragments的常规Activity类.在蜂窝之前,活动类不能直接使用片段,因此在使用片段的活动中需要这样做.
如果你的目标发行版是Honeycomb,那么你可以延伸到Activity.
片段也被视为"子活动".没有活动就不可能存在.总是将片段视为子活动,你应该做得很好.因此,活动将是父类,而片段是子类的符号关系.
| 归档时间: |
|
| 查看次数: |
78915 次 |
| 最近记录: |