关于 Fragment Result API 的更多介绍,可以参考:使用 Result API 实现 Fragment 间的通信
 
 
Fragment 是帮助我们组织和管理 UI 的重要组件,即使在 Compose 时代也具有使用价值,因此谷歌官方一直致力于对它的 API 的优化,希望他更加易用和便于测试。这些已废弃的 API 在未来的版本中将会彻底删除,所以如果你还在使用着他们,应该尽快予以替换。
 
官方也提供了工具帮助我们发现对于过期 API 的使用,Fragment-1.4.0 之后,我们可以通过全局设置严格模式策略,发现项目中的问题:
 
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        FragmentStrictMode.defaultPolicy =
            FragmentStrictMode.Policy.Builder()
                .detectFragmentTagUsage() 
                .detectRetainInstanceUsage()
                .detectSetUserVisibleHint()
                .detectTargetFragmentUsage()
                .apply {
                    if (BuildConfig.DEBUG) {
                        
                        penaltyDeath()
                    } else {
                        
                        penaltyListener {
                            FirebaseCrashlytics.getInstance().recordException(it)
                .build()
 关于 FragmentStrictMode 的更多内容,请参考:https://developer.android.com/guide/fragments/debugging#strictmode
 
ARTICLES & TUTORIALS
Forcing bytes download in Okio
这是Jake Wharton的文章, 关于Okio的BufferedSink.
okio 是一个java io库, 包装了一套API用来读写和...
                                    高效的加载高分辨率的图片
加载图片尺寸和类型 
针对不同的图片数据来源,BitmapFactory提供了不同的解码方法(decodeResource()、decodeFile()…),这些方法在构造图片的时候会申请相应的内存空间,所以它们经常抛出内存溢出的异常。这些方法都允许传入一个BitmapFactory.Options类型的参数来获取将要构建的图片的属性。如果将inJustDecodeBoun
                                    Fragment 诞生之初就被定义为一个小型 Activity,因此它代理了 Activity 的许多能力(例如 startActivityForResult 等),职责不够单一。随着 Jetpack 各种新组件的出现,Fragment 的很多职责被有效地进行了分担,其本身也可以更好地聚焦在对 UI 的划分和管理上面,早设计的一些 API 也可以退出历史舞台了。本文就盘点一下 Fragment 那些被废弃的 API。以前, Fragment 的构造函数不允许携带参数,因为某些场景中 Fragment 会由系
public MyAdapter(FragmentManager fragmentManager) {
            super(fragmentManager,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
                                    我们都知道 fragment 中的 setRetainInstance 用于控制是否在 activity 保留 fragment 实例,具体内容可参见 WanAndroid 的每日一问:...
                                    Fragment 是帮助我们组织和管理 UI 的重要组件,即使在 Compose 时代也具有使用价值,因此谷歌官方一直致力于对它的 API 的优化,希望它更加易用和便于测试。这些已废弃的 API 在未来的版本中将会彻底删除,所以如果你还在使用着他们,应该尽快予以替换。.detectFragmentTagUsage() //setTargetFragment的使用.detectRetainInstanceUsage()//setRetainInstance的使用。...
                                    kotlin-android-extensions插件可能算得上是我最喜欢的一个Kotlin在Android上的特性了。
这么说并不夸张,因为以前在使用Java开发Android程序时,我们总是要写一大堆的findViewById,枯燥又没什么意义。
虽然也有一些诸如ButterKnife之类的第三方库,专门用于对findViewById的用法进行简化,但是ButterKnife还是要通过注解来让控件与资源id之间进行绑定,并不算是非常方便。
而kotlin-android-extensions插件的
                                    在用fragmenttabhost做页面切换的时候,发现只要一来回切换fragment,fragment页面就会重新初始化,也就是执行onCreateView()方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态解决方案:在Fragment onCreateView方法中缓存Viewprotected WeakReference<View> mRootView...
                                    AndroidFragment---概要介绍
 一个Fragment代表一个行为或Activity中用户界面的一部分。你能够在一个Activity中组合使用多个Fragment来创建一个多面板的用户界面,并且可以在多个Activity中重用同个一个Fragment。你可以把一个Frament想象成一个Activity的模块,它有自己的生命周期,接受它们自己的输入事件,并且能够在Activity运
                                    很多情况下,fragment 的生命周期上限应该低于 FragmentManager/Activity。例如,ViewPager 屏幕外的界面不应被 resumed理想状态下,可以通过以...