首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Android入门教程 | Fragment 基础概念

不过,当 Activity 正在运行(处于已恢复生命周期状态)时,可以独立操纵每个片段,如添加或移除片段。...定制你的UI不同尺寸的屏幕上创建合适的UI,提高用户体验。 可复用,页面布局可以使用多个Fragment,不同的控件和内容可以分布不同的Fragment上。...通常,至少应实现以下生命周期方法: onCreate() 系统会在创建片段时调用此方法。当片段经历暂停或停止状态继而恢复,如果希望保留此片段的基本组件,则应在实现中将其初始化。...savedInstanceState 参数是恢复片段时,提供上一片段实例相关数据的 Bundle(处理片段生命周期部分对恢复状态做了详细阐述)。...这是因为如需恢复 Activity,则提交状态可能会丢失。对于丢失提交无关紧要的情况,请使用 commitAllowingStateLoss()。

3.5K40

Android之Fragment

什么是Fragment   自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片、片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。...当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,活动中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。   ...Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。 Fragment是一个独立的模块,紧紧地与activity绑定在一起。...Fragment对象的Activity被启动); 6. onResume()会让Fragment对象跟用户交互(包含该Fragment对象的Activity被启恢复)。...当activity处于Resumed状态时,可以自由地添加和移除fragment,也即是说,只有activityResumed状态时,fragment的状态可以独立改变。

65620

Android Jetpack - LiveData

生命周期活跃状态的定义是这些组件正处于 STARTED 或 RESUMED 状态,LiveData 只会更新活跃状态的观察者,而已注册但处于非活跃状态的观察者不会被更新 我们可以实现了 LifecycleOwner...生命周期状态更改时,LiveData 会通知 Observer 对象。你可以合并代码以更新这些 Observer 对象中的 UI。...每次应用程序数据更改时,你的观察者都可以每次更改时更新 UI,而不是更新 UI 没有内存泄露 观察者绑定到 Lifecycle 对象,并在其相关生命周期被破坏自行清理 不会因为活动停止而崩溃 如果观察者的生命周期处于非活动状态...,例如在后端堆栈中的活动的情况下,则它不会收到任何 LiveData 事件 不再需要手动处理生命周期 UI 组件只是观察相关数据,不会停止或恢复观察。...例如,后台活动返回前台后立即接收最新数据 配置更改友好 如果由于配置更改(例如设备轮换)而重新创建活动或片段,则会立即接收最新的可用数据 资源共享 你可以使用单例模式扩展 LiveData 对象以包装系统服务

2K30

Longhorn,企业级云原生容器分布式存储 - 高可用

目录 数据局部性 更改默认全局设置 使用 Longhorn UI 更改单个卷的数据位置 使用 StorageClass 为单个卷设置数据局部性 数据局部性设置 如何为卷设置数据局部性 意外分离恢复卷...使用 Longhorn UI 更改单个卷的数据位置 您可以使用 Longhorn UI 创建卷时设置 data locality。...您还可以 volume detail 页面中更改卷创建的 data locality setting。...对于没有控制器的 Pod,Longhorn 不会删除它们,因为如果 Longhorn 删除,则没有人会重新启动它们。要恢复意外分离的卷,您必须手动删除并重新创建没有控制器的 pod。...如果节点在故障 5-6 分钟内没有重新上线,Kubernetes 将尝试基于 pod eviction 机制删除所有无法访问的 pod,这些 pod 将处于 Terminating 状态

2K30

1.2、Activity的状态保存

Activity状态保存的基本使用 学习Activity的生命周期,我们知道,当Activity进入到paused或者stopped状态,这个Activity的状态仍然保存着。...然而,如果Activity进入到了后台,系统为了回收内存,有可能会去销毁该Activity,那么,当用户通过导航返回的时候,系统就不能简单的去恢复这个Activity,而是会重新创建这个Activity...但是对于普通用户来说,他并不知道系统销毁了Activity并重新创建它,因此,可能希望该Activity保存和他离开时候一样的状态。...更改活动重新创建时自动保存和恢复。...尽管系统帮我们实现了UI组建的自动保存和恢复,但是有时候也需要去保存和恢复一些其他的成员变量。

84530

ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

你也不想在你不需要的时候重新从数据库加载数据。让我们看一个 activity 的例子,在这个 activity 中你可以搜索你的音乐库: ? Activity 未搜索时及搜索状态示例。...onSaveInstanceState 是用于存储 UI 控制器被系统终止又重建可以轻松地重新加载 activity 状态时所需的少量数据。...例如,有些 activity 在被用户关闭不会以一个全新的状态打开。一般地,当我 Android 手机上关闭然后重新打开 Chrome 时,返回到了关闭 Chrome 之前正在浏览的页面。...使用 CursorLoader ,如果数据库其中的一个值发生改变,Loader 就会自动触发数据重新加载并且更新 UI。 ?...为了高效的保存和恢复 UI 状态,可以混合使用 持久化、onSaveInstanceState() 和 ViewModel。

3.7K30

2020年值得你去试试的10个React开发工具

安装完成,打开Chrome的开发人员工具你就能看到多出了Components和Profiler选项卡,“Components”选项能帮助你查看屏幕上组件列表以及从其他组件派生出的子组件,你能够选择检查甚至编辑组件的状态和属性...安装DevTools,在你已经React Dev Tools和React Sight的扩展设置中启用了“允许访问文件URL”选项,你就可以DevTools种找到一个新的名为“React Sight...”的标签,当你运行本地程序时,你将可以使用React Sight以可视化树状的形式查看和创建不同的组件,这将让你能够方便的理解它们的连接方式,在你把鼠标悬停在元素上时,就可以看到它们当前的状态和属性。...React Styleguideist 这是另一个非常有趣的交互式工具,可让您创建和展示您的UI组件。 ? 请仔细查看上图。右侧,你可以看到实际的代码,它在左侧生成UI。...Why did you render Why did you render是一个用来检测React组件是否需要重新渲染的工具,若被判定不需要重新渲染,那么则会console出一段标记组件的属性、状态和建议

7.9K20

ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

你也不想在你不需要的时候重新从数据库加载数据。让我们看一个 activity 的例子,在这个 activity 中你可以搜索你的音乐库: Activity 未搜索时及搜索状态示例。...onSaveInstanceState 是用于存储 UI 控制器被系统终止又重建可以轻松地重新加载 activity 状态时所需的少量数据。...例如,有些 activity 在被用户关闭不会以一个全新的状态打开。一般地,当我 Android 手机上关闭然后重新打开 Chrome 时,返回到了关闭 Chrome 之前正在浏览的页面。...使用 CursorLoader ,如果数据库其中的一个值发生改变,Loader 就会自动触发数据重新加载并且更新 UI。...为了高效的保存和恢复 UI 状态,可以混合使用 持久化、onSaveInstanceState() 和 ViewModel。

96420

Android:保存 & 恢复Activity 状态缓存 - onSaveInstanceState()、onRestoreInstanceState()

阅读本文可了解 Activity如何保存临时数据 & 状态 Activity如何恢复临时数据 & 状态 Activity如何保存临时数据 & 状态 1....activity重新创建的时候自动的恢复(只有在为该UI提供了唯一ID才起作用) 若需复写该方法从而存储额外的状态信息时,应先调用父类的onSaveInstanceState()(因为默认的onSaveInstanceState...()帮助UI存储它的状态) 只使用该方法记录Activity的瞬间状态UI状态),而不是去存储持久化数据,因为onSaveInstanceState()调用时机不确定性;可使用 onPause...调用时机 当系统“未经你许可”时,确实销毁了你的Activity,则重新启动时会被系统调用 特别说明: 与onSaveInstanceState()区别:此处是 “确实销毁”才调用 若是 被用户主动销毁...(如 用户按Back键),则不会调用 肯定在调用 onStop()前被调用,但不保证onPause()前 / 3.

2.9K30

Android基础部分再学习---activity的状态保存

然而,如果Activity进入到了后台,系统为了回收内存,有可能会去销毁该Activity,那么,当用户通过导航返回的时候,系统就不能简单的去恢复这个Activity,而是会重新创建这个Activity...但是对于普通用户来说,他并不知道系统销毁了Activity并重新创建它,因此,可能希望该Activity保存和他离开时候一样的状态。...然后,当Activity被重新创建的时候,我们就可以通过onCreate()或者onRestoreInstanceState()方法的Bundle对象,来获得我们之前存入的数据。...更改活动重新创建时自动保存和恢复。...尽管系统帮我们实现了UI组建的自动保存和恢复,但是有时候也需要去保存和恢复一些其他的成员变量。

98720

Android学习笔记(四)深入探讨Activity

Fragment用来封装UI的各个部分,从而能够方便的创建动态界面,这些界面能够针对不同的屏幕尺寸很方向重新排列,起到优化UI的效果。   ...8 } 9 10 //onCreate方法完成调用,用于恢复UI状态 11 @Override 12 protected void onRestoreInstanceState...41 * Activity状态生命周期结束的时候滴啊用,用来保存UI状态的改变 42 */ 43 } 44 45 //UI状态改变保存到saveInstanceState...(); 69 /* 70 * 挂起不需要的UI更新、线程或处理 71 * 当Activity不可见时,保存所有的编辑或者状态改变,因为调用这个方法...应该使用这个Bundle将UI恢复为上一次的状态,既可以通过onCreate方法也可以重写onRestoreInstanceState。

1.1K100

Android技能树 — Fragment总体小结

方法存在的意义是对detach的Fragment进行界面恢复。...然后网上有很多教程,叫你提交的时候使用commitAllowingStateLoss()方法,虽然说不会抛出错误,但是如果在Activity已经保存状态完之后提交了它,到时候Ativity意外崩溃,再恢复数据的时候就不会恢复...所以我们比如一些对象可以保持fragment中,这时候Activity重新恢复,其他对象可以从fragment中找回。...Fragment重建恢复数据 推荐下面这篇文章: [译] 保存/恢复 Activity 和 Fragment 状态的最佳实践 引用一段话: 完全分开处理Fragment状态和view状态 为了使你的代码变得干净和可扩展...如果这里有任何属性是属于View的,View内部进行保存和恢复.如果这里有任何属性是属于Fragment的,Fragment内部进行保存和恢复

20510

Android技能树 — Fragment总体小结

方法存在的意义是对detach的Fragment进行界面恢复。...然后网上有很多教程,叫你提交的时候使用commitAllowingStateLoss()方法,虽然说不会抛出错误,但是如果在Activity已经保存状态完之后提交了它,到时候Ativity意外崩溃,再恢复数据的时候就不会恢复...所以我们比如一些对象可以保持fragment中,这时候Activity重新恢复,其他对象可以从fragment中找回。...推荐下面这篇文章: [译] 保存/恢复 Activity 和 Fragment 状态的最佳实践 引用一段话: 完全分开处理Fragment状态和view状态 为了使你的代码变得干净和可扩展,你最好把Fragment...如果这里有任何属性是属于View的,View内部进行保存和恢复.如果这里有任何属性是属于Fragment的,Fragment内部进行保存和恢复

1.1K20

Bootstrap UI 编辑器

更神奇的是,Bootstrap 会根据用户的每个选择来重新建立框架,方便用户的下载和使用。 2. ... Bootstrap 准备好的内容和代码片段的基础上提供一个又好又优雅的方法来编辑和美化 html,也因此它是个明智的选择。...这个应用还会帮用户创建的每种风格都生成唯一的一个 URL ,这样就可以保存用户所有的设置。更不可思议的是,当用户离开的时候,用户可以停止或者恢复自己定制的页面。 8. LayoutIt!...同时也是一个可拖拽的可视化编辑器,用来设计,创建原型和测试 Bootstrap 框架。Bootply 有个代码存储库,里面包括了 Bootstrap 代码片段,示例和模板。...X-editableX-Editable 是一个扩展库,允许用户创建可编辑的元素,比如页面弹出和内联模式。她提供本地的 Bootstrap,jQuery UI 或者是纯 jQuery 编辑功能。

3.2K50

如何在现有的 Web 应用中使用 ReactJS

这个过程困难重重,因为大量的 jQuery 分散代码段中。使用 jQuery 构建所有的 UI 是可能的(我们已经这样做了很多年),但是规模变大之后,将变得混乱且难以维护。...所以,如果你的代码是用 jQuery 或者其它框架所写,那么应该如何使用 React 去替换这些 UI 片段?...使用类似 Redux 的工具全局定义状态和 actions,然后将组件挂载上去。 使用 Container 分享状态 这是使用  React 渲染比较常见的方式,尤其 SPA 应用或者 UI 片段。...很多之前创建的应用可能不适合,但是可以根据 UI 布局情况选择使用。...主要的解决方法就是,如果你使用 jQuery 处理 UI 片段,那么你可以将容器元素替换成一个 React 组件。如果你需要在多个组件中分享状态,那么你可以使用容器方法或者类似 Redux 的库。

7.8K40

如何在已有的 Web 应用中使用 ReactJS

这个过程困难重重,因为大量的 jQuery 分散代码段中。使用 jQuery 构建所有的 UI 是可能的(我们已经这样做了很多年),但是规模变大之后,将变得混乱且难以维护。...所以,如果你的代码是用 jQuery 或者其它框架所写,那么应该如何使用 React 去替换这些 UI 片段?...使用类似 Redux 的工具全局定义状态和 actions,然后将组件挂载上去。 使用 Container 分享状态 这是使用  React 渲染比较常见的方式,尤其 SPA 应用或者 UI 片段。...很多之前创建的应用可能不适合,但是可以根据 UI 布局情况选择使用。...主要的解决方法就是,如果你使用 jQuery 处理 UI 片段,那么你可以将容器元素替换成一个 React 组件。如果你需要在多个组件中分享状态,那么你可以使用容器方法或者类似 Redux 的库。

14.5K00
领券