首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android入门教程 | Fragment 基础概念

例如,当 Activity 暂停时,Activity 的所有片段也会暂停;当 Activity 被销毁时,所有片段也会被销毁。...不过,当 Activity 正在运行(处于已恢复生命周期状态)时,可以独立操纵每个片段,如添加或移除片段。...当执行此类片段事务时,也可将其添加到由 Activity 管理的返回栈 — Activity 中的每个返回栈条目都是一条已发生片段事务的记录。借助返回栈,用户可以通过按返回按钮撤消片段事务(后退)。...onCreateView() 系统会在片段首次绘制其界面时调用此方法。如要为片段绘制界面,从此方法中返回的 View 必须是片段布局的根视图。如果片段未提供界面,可以返回 null。...但请注意,只有在该片段附加到 Activity 时才需调用 getContext()。如果尚未附加该片段,或者其在生命周期结束期间已分离,则 getContext() 返回 null。

3.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Fragment初识

    通过将 Activity 布局分成片段,您可以在运行时修改 Activity 的外观,并在由 Activity 管理的返回栈中保留这些更改。...不过,在手机尺寸的屏幕上,没有足以储存两个片段的空间,因此Activity A 只包括用于显示文章列表的片段,当用户选择文章时,它会启动Activity B,其中包括用于阅读文章的第二个片段。...:自定义一个Fragment类,需要继承Fragment或者他的子类,重写onCreateView()方法 在该方法中调用:inflater.inflate()方法加载Fragment的布局文件,接着返回加载的...findFragmentByTag()、findFragmentById() } /** * 重写onStart()方法, * 因为从fragment的生命周期可以知道当...是异步处理的,所以获取fragment时要注意】 可通过以下两种方法获取fragment:findFragmentByTag()、findFragmentById() Fragment中的组件 /

    1.2K20

    ViewPager刷新问题原理分析及解决方案(FragmentPagerAdapter+FragementStatePagerAdapter)ViewPager+FragmentPagerAdapte

    --根据name在Activity的FragmentManager中查找缓存Fragment--> Fragment fragment = mFragmentManager.findFragmentByTag...(name);查找是否已经有Fragment缓存,第二次设置Adapter的时候,由于部分Fragment已经被添加到FragmentManager的缓存中去了,新的Adapter仍然能通过mFragmentManager.findFragmentByTag...FragmentManager对于Fragment的操作是分批量进行的,在一个Transaction中有多个add、remove、attach操作,Android是有返回键的,为了支持点击返回键恢复上一个场景的操作...对于每个入栈的Transaction,都是需要出栈的,而且每个操作都有前后文,比如进入与退出的动画,当需要翻转这个操作,也就是点击返回键的时候,需要知道如何翻转,也就是需要记录当前场景,对于remove...public Fragment findFragmentByTag(String tag) { if (mAdded != null && tag !

    3.3K20

    Android技能树 — Fragment总体小结

    正文: 1.Fragment的添加 我们知道Fragment是一个"碎片(或者片段)",添加在Activity中。如果我现在问你,Activity要显示一个按钮Button,你会怎么做? 1....”,那你说"子Activity"中能否再添加Fragment,答案当然是可以。...name = makeFragmentName(container.getId(), itemId); Fragment fragment = this.mFragmentManager.findFragmentByTag...原因:我们可以知道Activity重新创建时,会重新构建它所管理的Fragment,原先的Fragment的字段值将会全部丢失(因为当切换横竖屏时,Fragment会调用自己的无参构造函数,那么在构造函数传参就会失效...我们的目标:FragmentA 启动FragmentB ,然后FragmentB做完事情,返回结果给FragmentA FragmentB.setTargetFragment(FragmentA);

    35110

    Android开发之漫漫长途 XII——Fragment详解

    FrameLayout是一个布局,称为“帧布局”,,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定...,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!...onActivityCreated方法:当Activity中的onCreate方法执行完后调用。 onstart方法: 与Activity一样,Fragment开始可见但不可交互的时候调用。...onResume方法:与Activity一样,是当该Fragment与用户能进行交互时被执行,用户可以获得Fragment的焦点,能够与用户交互。 按下home键之后 ?...时指定的。

    41010

    Android技能树 — Fragment总体小结

    我们知道Fragment是一个"碎片(或者片段)",添加在Activity中。如果我现在问你,Activity要显示一个按钮Button,你会怎么做? 1....”,那你说"子Activity"中能否再添加Fragment,答案当然是可以。...name = makeFragmentName(container.getId(), itemId); Fragment fragment = this.mFragmentManager.findFragmentByTag...原因:我们可以知道Activity重新创建时,会重新构建它所管理的Fragment,原先的Fragment的字段值将会全部丢失(因为当切换横竖屏时,Fragment会调用自己的无参构造函数,那么在构造函数传参就会失效...我们的目标:FragmentA 启动FragmentB ,然后FragmentB做完事情,返回结果给FragmentA FragmentB.setTargetFragment(FragmentA);

    1.1K20
    领券