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

Android入门教程 | Fragment 基础概念

例如,当 Activity 暂停Activity 的所有片段也会暂停;当 Activity 被销毁,所有片段也会被销毁。...不过,当 Activity 正在运行(处于已恢复生命周期状态),可以独立操纵每个片段,如添加或移除片段。...当执行此类片段事务,也可将其添加到由 Activity 管理的返回栈 — Activity 中的每个返回栈条目都是一条已发生片段事务的记录。借助返回栈,用户可以通过按返回按钮撤消片段事务(后退)。...实际上,如果要将现有 Android 应用转换为使用片段,可能只需将代码 Activity 的回调方法移入片段相应的回调方法中。...创建此 Activity 布局,系统会将布局中指定的每个片段实例化,并为每个片段调用 onCreateView() 方法,以检索每个片段的布局。

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

安卓UI

- 任务 任务是用户在执行某项工作与之互动的一系列 Activity 的集合。 - 片段 Fragment 表示 FragmentActivity 中的行为或界面的一部分。...您可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。...您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(这有点像可以在不同 Activity 中重复使用的...与 Activity 生命周期协调一致 片段所在 Activity 的生命周期会直接影响片段的生命周期,其表现为,Activity 的每次生命周期回调都会引发每个片段的类似回调。...o 与 Activity 通信 片段可通过 getActivity() 访问 FragmentActivity 实例,并轻松执行在 Activity 布局中查找视图等任务 View listView

1.3K30

Fragment初识

例如:新闻应用可以使用一个片段在左侧显示文章列表,使用另一个片段在右侧显示文章—两个片段并排显示在一个 Activity 中,每个片段都具有自己的一套生命周期回调方法,并各自处理自己的用户输入事件。...也就是说,由于每个片段都会通过各自的生命周期回调来定义其自己的布局和行为,您可以将一个片段加入多个 Activity,因此,您应该采用可复用式设计,避免直接某个片段直接操纵另一个片段。...例如,在手机上,如果不能在同一 Activity 内储存多个片段,可能必须利用单独片段来实现单窗格 UI。...不过,在手机尺寸的屏幕上,没有足以储存两个片段的空间,因此Activity A 只包括用于显示文章列表的片段,当用户选择文章,它会启动Activity B,其中包括用于阅读文章的第二个片段。...** * 重写onStart()方法, * 因为fragment的生命周期可以知道当Activity的onCreate(Bundle savedInstanceState)中

1.2K20

安卓 topic-UI-设置 settings

与仅使用上述 Activity 相比,无论您在构建何种 Activity片段都可为应用提供一个更加灵活的体系结构。...7CimageView2/2/w/1240) 读取首选项 默认情况下,应用的所有首选项均保存到一个可通过调用静态方法 PreferenceManager.getDefaultSharedPreferences() 应用内的任何位置访问的文件中...为了避免用户禁止您的应用后台访问数据,您应该有效地使用数据连接,并允许用户通过应用设置优化应用的数据使用。...因此,当用户系统的“设置”应用检查应用所使用的数据量,可以使用“查看应用设置”按钮启动 PreferenceActivity,这样,用户就能够优化应用使用的数据量。.... } 保存设置的值 初始化当前值 提供默认值 保存和恢复首选项的状态 正如布局中的 View 一样,在重启 Activity片段(例如,用户旋转屏幕),Preference 子类也负责保存并恢复其状态

3K10

Android开发笔记(六十七)嵌入页面的碎片

Fragment 概念 Android3.0之后引入了Fragment,可以把它理解为页面的一个片段,比如一个html网页就包含一个header头部片段,以及一个body身体片段。...设计Fragment的目的是让页面布局更加灵活,不但可以随意组装和拼接各个片段,还可以只更新某个片段实现页面局部更新的功能(这个类似网页的ajax技术)。...导致状态丢失的情况有很多,其中一种是早期的Android可能在onStop之前就会结束Activity,后来3.0开始只能在onStop之后才能结束Activity,这样早期Android如果在omPause...Fragment的生命周期 Fragment的生命周期参照Activity(参见《Android开发笔记(三十九)Activity的生命周期》),同时多出了几个方法,具体说明如下: onAttach...onActivityCreated : 在Activity页面创建完毕之后调用,这意味着onCreateView有可能在主页面尚未创建完毕就完成了,比如说在主页面的onCreate方法中加入Fragment

1.3K60

【云+社区年度征文】深入理解--Android Loader

如果您不理解为何需要 Loader API 来执行这个看似无关紧要的操作,请首先考虑没有加载器可能会遇到的一些问题: 如果直接在 Activity片段中获取数据,由于通过界面线程执行查询的速度可能较慢...如果另一个线程获取数据(方法可能是使用 AsyncTask),则您需负责通过各种 Activity片段生命周期事件(例如 onDestroy() 和配置变更)来管理线程和界面线程。...如要获取 LoaderManager,请 Activity片段调用 getSupportLoaderManager()。...onLoaderReset(Loader) - 重置之前创建的加载器时调用(当您调用 destroyLoader(int) ),或由于系统销毁 Activity片段而使其数据不可用时调用。...此接口一般由您的 Activity片段实现,并在您调用 initLoader() 或 restartLoader() 进行注册。 --- Loader Loader 类执行数据的加载。

66741

Android中基于监听的事件处理

一、使用内部类作为事件监听器 和上面的匿名内部类不同,使用内部类可以在当前类中复用该监听器类;因为监听器类是外部类的内部类,所以可以自由访问外部类的所有界面组件,这也是内部类的两个优势。...继续使用WidgetSample工程,在app/main/res/layout/目录下创建event_inner_class_layout.xml文件,在其中填充如下代码片段: <?...外部类形式的事件监听器不能自由访问创建GUI界面的类中的组件,编程不够简洁。...继续使用WidgetSample工程,在app/main/res/layout/目录下创建event_activity_class_layout.xml文件,在其中填充如下代码片段: <?...Toast.LENGTH_SHORT).show(); } } 上面程序中的粗体字代码定义了一个clickHandler(View source)方法,当程序中的按钮被单击

1.5K60

深入理解--Android Loader

如果您不理解为何需要 Loader API 来执行这个看似无关紧要的操作,请首先考虑没有加载器可能会遇到的一些问题: 如果直接在 Activity片段中获取数据,由于通过界面线程执行查询的速度可能较慢...如果另一个线程获取数据(方法可能是使用 AsyncTask),则您需负责通过各种 Activity片段生命周期事件(例如 onDestroy() 和配置变更)来管理线程和界面线程。...如要获取 LoaderManager,请 Activity片段调用 getSupportLoaderManager()。...onLoaderReset(Loader) - 重置之前创建的加载器时调用(当您调用 destroyLoader(int) ),或由于系统销毁 Activity片段而使其数据不可用时调用。...此接口一般由您的 Activity片段实现,并在您调用 initLoader() 或 restartLoader() 进行注册。 ---- Loader Loader 类执行数据的加载。

77320

Android交流会-碎片Fragment,闲聊单位与尺寸

标题图 女孩:又周末了哦~ 男孩:那么今日来开个交流会,我们也学一学人家高大尚的大会,自己开一个,广州站,Android开发攻城狮交流会~ 1.Fragment概要: Android3.0开始引入了Fragment...): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...onStop(): 片段不再对用户可见; onDestroyView(): 销毁与其View相关资源; onDestroy(): 销毁一切片段; onDetach(): 片段与其活动不再相关联。...里的代码 通常用这个来展示,但是代码过长,我们来简化一下 我们先来添加一个setMain() 方法,来显示打开界面,显示的初始页面 实现点击底部导航栏来切换响应的fragment,我们在onClick...男孩:px在Android中为最小元素单元,px为像素,pt是磅数的意思,在Android通常作为字体的单位来用~ 女孩:那dp和sp呢?

1.2K20

Kotlin 和 JetPack 的项目实战(一)

搭建基于 MVVM 的项目框架 --- 前言 谷歌在 2017 年的 Google IO 宣布 Kotlin 成为 Android 开发的官方语言开始,已经过去将近 2 年了,Kotlin 越来越被开发者所关注...虽然批评的声音也不少,说 Kotlin 只不过是语法糖的,拿来跟 Java 8/9/10 对比表示不过如此的,但是针对 Android 开发而言,这门语言是有生产力的,具体我在项目中可能会插入一些个人感受...浅谈 MVP 和 MVVM MVP 公司大概 1 年半前开始改为用 MVP 模式来开发代码,相比曾经上千行的 Activity 代码,实在进步了不少,V (View) 和 P (Presenter) 之间通过接口来互相访问与操作...随着生命周期的变化,可能出现 NPE,或者内存泄露,这确实也是我们上一个项目上线测试后出现的最多 Bug,添加了不少判空条件,更加加深了我去尝试其它设计模式的愿望。...默认只在 Activity 和 Fragment 在 started 或 resumed 2 种状态通知 UI 更新数据 3.

96310

Android 组件逻辑漏洞漫谈

Intent 的最主要功能是用来启动 Activity,因此我们以这个场景为例,源码中分析一下 Intent 的具体实现。...启动 Activity 的常规代码片段如下: Intent intent = new Intent(context, SomeActivity.class); startActivity(intent)...使用 FragmentActivity 可以在一个 Activity 中组合一个或者多个片段,方便进行代码复用,片段的生命周期受到宿主 Activity 的影响。...可以看到 Provider 主要实现了类似数据库的增删改查接口,客户端来看,查询过程也和查询传统数据库类似,例如,下面是查询系统短信的代码片段: Cursor cursor = getContentResolver...由于 Webview 或者说 JS 引擎的沙箱特性,网页中的 Javascript 代码本身无法执行许多原生应用才能执行的操作,比如无法 Javascript 中发送广播,无法访问应用文件等。

1.5K50
领券