当前位置: 首页 > 知识库问答 >
问题:

Android支持库27.1.0新方法requireActivity()、requireContext()

陆昕
2023-03-14

根据支持库changelog和Fragment类文档(https://developer.android.com/reference/android/support/v4/app/Fragment.html),现在有了新的方法,如requreActivity()和requireContext()。

与getActivity()和getContext()相比,这些方法的目的是什么,因为它们仍然可以抛出IllegalStateExceptions?这是否比在找不到活动或上下文时返回null更好?我应该简单地用requireActivity()替换每个getActivity()吗?

共有1个答案

谷泽宇
2023-03-14

基本上就是要有一个总是返回非空对象或抛出异常的方法。仅此而已。

从文档中:

片段现在有requireContext()、requireActivity()、requireHost()和requireFragmentManager()方法,它们返回等效get方法的非空对象或抛出IllegalStateException。

 类似资料:
  • 您知道将引入Android支持库的计划吗?对于promise模式,它看起来是一个很好的解决方案。

  • 我按照http://developer.android.com/tools/support-library/setup.html的指示将支持库添加到我的android项目中,但遇到了这样的构建错误 Gradle:评估项目时出现问题:“projectname”。 没有方法的签名:org。格拉德尔。应用程序编程接口。内部的人工制品dsl。依赖项。DefaultDependencyHandler。com

  • 我试图实现一个与Cheesesquare演示应用程序中类似的CollapsingToolBarLayout。 但是,我需要在进入活动时默认折叠工具栏(这样在手机上的横向模式下就不会占用太多空间)。 根据文档,使用标志似乎很容易实现。 但是,我没有获得所需的行为。相反,AppBarLayout一开始显示完全扩展,然后滚动出屏幕,只留下系统栏。 下面是我的布局(对芝士蛋糕的轻微修改):

  • 支持多种版本库访问方法 你已经看到了一个版本库可以用多种方式访问,但是可以—或者说安全的—用几种方式同时并行的访问你的版本库吗?回答是可以,倘若你有一些深谋远虑的使用。 在任何给定的时间,这些进程会要求读或者写访问你的版本库: 常规的系统用户使用Subversion客户端(客户端程序本身)通过file://URL直接访问版本库; 常规的系统用户连接使用SSH调用的访问版本库的svnserve进程(

  • 这是指生成中出现的警告消息。gradle文件: 一切正常。Android支持库必须使用完全相同的版本规范(混合版本可能会导致运行时崩溃) 我很清楚这一点,并在自己的代码/构建中使用相同的版本。然而,对于我使用的一些第三方库,情况并非如此。 有时第三方库使用旧版本,而其他一些库使用新版本-因此更新您的支持库版本不会解决问题。 在某些情况下,您可能不想升级正在使用的支持库的升级版本。 使用不同版本的支

  • 需要什么步骤来使用这个库和构建我的应用程序与multidex支持?