屏幕方向更改后,片段(支持的库)在 onActivityCreated() 中看不到活动

2024-04-06

我正在使用 Android 支持库 v13。有一件奇怪的事情我无法理解。

创建新活动时,我将片段加载为:

主要活动布局:

...
<FrameLayout
    android:id="@+id/fragment_1"
    ... />

In onCreate()主要活动:

mFragment = (FragmentActivity) getSupportFragmentManager().findFragmentById(R.id.fragment_1);
// if screen orientation changed, no need to create new instance of fragment
if (mFragment == null) {
    mFragment = ...; // create new instance of fragment

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_1, mFragment);
    // because this is called ONCE, we can use this method
    ft.commitAllowingStateLoss();
}

现在,一切都可以在模拟器 1.5、1.6 和 2.2 中完美运行。我有电话2.2.2.

但有一个例外:如果应用程序正在运行,并且屏幕方向发生了变化。里面onActivityCreated(), getActivity() 有时回报null。这只发生在模拟器 1.5/1.6/2.2 中。

我的手机2.2.2工作得很好,我测试了数百次但从未发现这个错误。甚至其他模拟器 3.x、4.x 也能正常工作。不幸的是我没有电话 1.5/1.6/2.2。

那么你有这方面的经验吗?这是支持库或模拟器的错误吗?


更改 Android 设备方向会唤起您的onCreate方法,我相信。结果,很容易发生奇怪的事情。您可以做两件事:

1-您可以尝试捕获方向更改并在那里执行一些代码,以尝试防止因方向更改而导致的问题:

@Override
public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        setContentView(R.layout.main);
        // etc.
}

2- 或者通过添加以下内容来完全防止清单中的方向改变:android:screenOrientation="portrait"
到您的主要活动标签,以阻止此问题再次发生。也就是说,如果您愿意阻止方向改变。

我通常在我的应用程序中使用选项 2,因为方向改变往往会导致各种问题。

旁注:我见过有人说他们添加了android:configChanges="orientation|keyboardHidden"他们的主要活动清单也可以解决一些定向问题,因此这也值得一试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

屏幕方向更改后,片段(支持的库)在 onActivityCreated() 中看不到活动 的相关文章

  • 如何在 ADB 连接期间禁用电池充电?

    问题描述 每次我在电脑和手机之间连接 USB 线时 电池都会自动充电 我想使用 ADB 协议 但我不想在 ADB 连接期间为电池充电 是否可以关闭此充电功能 当然 我该怎么做呢 环境 Android 操作系统 4 及更高版本的手机 我只需要
  • Android 应用程序在启动时打开应用程序信息屏幕,而不是启动主 Activity

    我不确定这是否是一个问题 但这是我第一次遇到这个问题 我正在开发一个应用程序 当我在进行一些编码后断开应用程序与 Android Studio 和 PC 的连接时 如果我尝试在手机上打开应用程序 它会启动app info屏幕 我们看到强制停
  • 从 arraylist 和 hashmap 中删除重复项

    我有一个数组列表 其中包含付款人的姓名 另一个数组列表包含每次付款的费用 例如 nameArray 尼古拉 劳尔 洛伦佐 劳尔 劳尔 洛伦佐 尼古拉 价格数组 24 12 22 18 5 8 1 我需要将每个人的费用相加 所以数组必须变成
  • 需要使用手机后退按钮返回 Web 视图的帮助

    这是我的代码 package com testappmobile import android app Activity import android os Bundle import android view KeyEvent impor
  • 如何在活动中的必填字段中显示 * 符号

    我需要在活动中的必填字段中显示 符号 你能建议我怎样才能做到这一点吗 任何帮助 将不胜感激 我想说 作为必填字段的标记不遵循本机 Android 主题 的组合setHint and setError对于 Android 应用程序来说看起来更
  • Android:如何使用后台线程?

    我开发了一个应用程序 它从互联网获取内容并相应地在设备的屏幕上显示它 该程序运行得很好 就是有点慢 加载并显示内容大约需要 3 4 秒 我想将获取内容并将其显示在后台线程中的所有代码放在一起 当程序执行这些功能时 我想显示一个进度对话框 你
  • Google 地图删除标记路线上下文菜单

    我使用 Android Studio 的 Google 地图模板启动了一个新项目 并在地图上添加了一个标记 LatLng location new LatLng lat lng Marker marker mMap addMarker ne
  • 如何向开发人员发送崩溃报告?

    我开发 Android 应用程序 但在某些情况下我的应用程序force close 如果出现以下情况 我如何向开发人员发送包含详细信息的电子邮件force close随时发生 The ACRA https github com ACRA a
  • Android中如何检测WIFI连接何时建立?

    我需要检测何时通过 WIFI 建立网络连接 发送什么广播来确定已建立有效的网络连接 我需要验证是否存在有效的 HTTP 网络连接 我应该监听什么以及需要进行哪些额外测试才能知道是否存在有效连接 您可以注册一个BroadcastReceive
  • 在选项卡上保存数据

    我有 3 个选项卡 每个选项卡都有一个单独的活动 我想在用户单击任一选项卡上的 保存 时保存数据 有几个选项可供选择 共享首选项 全局变量或将对象保存在上下文中 编辑 我必须保存图像和文本字段 Android 共享首选项 https sta
  • 使用 Android Studio 进行调试永远停留在“等待调试器”状态

    UPDATE The supposed重复是一个关于陷入 等待调试器 执行时Run 而这个问题就陷入了 等待调试器 执行时Debug 产生问题的步骤不同 解决方案也不同 每当我尝试使用Android Studio的调试功能时 运行状态总是停
  • 如何从android中的外部存储中获取所选文件的文件路径?

    我在选择文件的文件路径时遇到问题 我搜索了整个堆栈溢出 但问题没有解决 从设备中选择文件的代码如下所示 Intent intent new Intent Intent ACTION GET CONTENT intent setType in
  • 适用于 Android 的 Google 云端硬盘\文档 API

    我在几个小时内将 Dropbox 与我的应用程序集成 因为 SDK 描述清晰并且有很好的使用示例 Google Drive 似乎只有一个 一刀切 的 Gdata SDK 它非常重 有很多依赖项 它使我的应用程序的大小增加了三倍 而且不是很直
  • Android 纹理仅显示纯色

    我正在尝试在四边形上显示单个纹理 我有一个可用的 VertexObject 它可以很好地绘制一个正方形 或任何几何对象 现在我尝试扩展它来处理纹理 但纹理不起作用 我只看到一种纯色的四边形 坐标数据位于 arrayList 中 the ve
  • Android 地理围栏无法正常工作(未调用 IntentService)

    这是我的代码 安卓清单
  • Android Gradle 同步失败:无法解析配置“:classpath”的所有工件

    错误如下 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactResolveException Could n
  • 如何关闭 EditText 中的建议?

    如何在 Android 中关闭 EditText 中的建议 android inputType textNoSuggestions 根据this http comments gmane org gmane comp handhelds an
  • Android AdMob:addView 在返回活动之前不会显示广告

    我正在尝试在游戏顶部添加横幅广告 我的活动使用带有自定义 SurfaceView 的relativelayout 我希望广告与 SurfaceView 重叠 广告会加载并可点击 但不会绘制到屏幕上 当我离开活动并返回时 会绘制广告 例如 通
  • 使用Intent拨打电话需要权限吗?

    在我的一个应用程序中 我使用以下代码来拨打电话 Intent intent new Intent Intent ACTION CALL Uri parse startActivity intent 文档说我确实需要以下清单许可才能这样做
  • 为什么带处理程序的连续自动对焦相机不允许切换相机闪光灯?

    到目前为止我所做的 我已经实现了用于读取二维码的自定义相机 需要继续聚焦相机以获得更好的二维码读取 我的问题当我使用处理程序每 秒聚焦一次时 相机闪光灯开 关按钮不起作用 或者打开和关闭相机闪光灯需要太多时间 当我删除每秒自动对焦相机的代码

随机推荐

  • 使用 GDI+ 创建透明背景的图像?

    我正在尝试创建一个具有透明背景的图像以显示在网页上 我尝试了几种技术 但背景总是黑色的 如何创建一个透明图像 然后在其上绘制一些线条 Call Graphics Clear Color Transparent 好 清晰图像 不要忘记使用具有
  • JTree 在应用程序启动时添加节点

    我想使用文件浏览器创建文本编辑器 因此当我启动应用程序时 我希望我的程序在 JTree 上添加节点 以便它向我显示所有文件和文件夹 例如 我的文档 文件夹中的所有文件和文件夹 并让我能够访问这些文件和文件夹 尤其是文件夹 我试图弄清楚安德鲁
  • 具有 contenteditable 的 onChange 事件[重复]

    这个问题在这里已经有答案了 代码如下 text span blah blah span text onChange 事件不起作用 至少在火狐浏览器中 我不想使用文本区域 输入标签 因为必须可以仅更改文本中的特定单词 并且必须内联显示 而不是
  • 使用 SQL 代理运行 SSIS 包时出现问题 - 失败并显示“DTSER_FAILURE(1)”

    我有一个存储在 MSDB 数据库中的 SSIS 包 当我执行它时它工作正常 它将在 SA 帐户下运行或使用 Windows 安全性 我想安排此作业与 SQL Agent 一起运行 但是当我这样做时 我收到一个奇怪的错误 并且我尝试的任何配置
  • Discord Webhook 消息无法发送

    所以我有一段不久前有人发布的代码 到现在已经完美运行一年了 它采用谷歌表单答案并将其作为网络钩子发布到不和谐频道 现在从昨天开始就不再起作用了 脚本没有任何改变 function onSubmit e var form FormApp ge
  • 为什么我无法导入 folium python 包?

    我已经 pip 安装了 folium 当我在主目录中工作时尝试导入它时 出现此错误 ImportError Traceback most recent call last
  • 使用程序员 dvorak 键盘布局(移位数字)在 xmonad 中切换工作区

    好吧 我实际上并没有使用德沃夏克 但是Neo2 http neo layout org 但由于我使用的是矩阵式键盘 真正符合人体工程学 http www trulyergonomic com 我也改变了数字 因此我的这个结构xmonad h
  • MSVC 直接构造函数调用扩展

    In 这个回应 https stackoverflow com a 23274182 420683 没有手套的 https stackoverflow com users 1902313 tloveless指出可以在 MSVC 中使用thi
  • 停止 Safari 4 窗口中的按键事件冒泡

    在 Safari 4 窗口中 似乎无法阻止某些关键事件在 Javascript 中冒泡到浏览器 This question https stackoverflow com questions 1492080 disable f5 key i
  • MediaCodec 将 WAV 转换为 AMR 的文件无法播放

    我在用MediaCodec转换一个 wav文件至 amr 我使用以下代码进行输入和获取编码缓冲区 我得到了编码文件 但它无法播放 我的输入是正确的 因为我能够在 Audacity 中播放该文件 我在用EncodeDecodeTest jav
  • ruby 中对象引用的类型

    我是 Ruby 新手 目前正在尝试使用 Ruby 书中的一些示例作为指导 class Account attr accessor balance def initialize balance balance balance end end
  • 如何在领域层使用工作单元

    我正在尝试在 我的服务 类中使用工作单元模式 我有我的 CompanyService 课程 public class CompanyService ICompanyService private readonly ICompanyRepos
  • Html-如何防止连续空格被折叠

    我正在使用 html 模板以编程方式发送电子邮件 我对 html 一无所知 但我刚刚了解到它会折叠连续的空白字符 这会破坏我的格式 我正在通过电子邮件发送数字表 我怎么解决这个问题 只需使用 pre 像这样标记 pre This is so
  • mp4parser 从 Android Studio 在设备上运行,但在手动安装 APK 时崩溃

    我在用着mp4parser合并videos 该应用程序在运行时运行完美A S 但如果我手动安装应用程序 传输并运行APK 或者如果我运行它TestFairy 应用程序崩溃 当我更新我的Target Sdk to Lollipop 我已经添加
  • SQLite3 UNIQUE 约束失败错误

    我正在尝试创建一个数据库 允许用户创建 待办事项 列表并在其中填充要完成的项目 但是 当将数据插入表中时 它给了我一个 UNIQUE 约束失败错误 我不知道如何解决它 这是我用于创建数据库和插入数据的代码 CREATE TABLE user
  • 如何确保用户名不会与现有路由冲突?

    所以我想在我的网站上有网址 例如http foobar com hadees http foobar com hadees这会进入某人的个人资料 但是 在注册用户名时 如何确保他们不会选择与我现有的路由冲突的内容 我猜我需要获取现有路线的列
  • 将可选值分配给变量(如果存在)

    您好 我正在使用 Java 可选 我看到Optional有一个方法ifPresent 而不是做类似的事情 Optional
  • 将 JScrollPane 滚动到底部

    我需要将 JScrollPane 滚动到底部 JScrollPane 包含一个JPanel 其中包含许多JLabels 要滚动到顶部 我只需执行以下操作 scrollPane getViewport setViewPosition new
  • 运行自定义 XMPP 服务器应用程序有多容易?

    参考这个问题 https stackoverflow com questions 2904163 what do i need to know before working on an im application XMPP 被认为是 IM
  • 屏幕方向更改后,片段(支持的库)在 onActivityCreated() 中看不到活动

    我正在使用 Android 支持库 v13 有一件奇怪的事情我无法理解 创建新活动时 我将片段加载为 主要活动布局