【问题标题】:Display Android Native Activity into React Native View在 React Native View 中显示 Android Native Activity
【发布时间】:2021-10-13 21:46:23
【问题描述】:

我有一个 DemoApp Android 应用,它有一个 SampleActivity.java,我想在里面显示它并 React Native View。

我创建了一个 React Native 组件,它可以正常加载,我需要在其中显示 SampleActivity.java 的内容。我曾尝试使用 Intent,但这会导致启动 SampleActivity.java 全屏,作为一个单独的应用程序,而不是在 RN View 内部。

启动SampleActivity的当前代码:

    ReactApplicationContext context = getReactApplicationContext();
    Intent intent = new Intent(context, SampleActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);

关于如何在 RN 视图中显示 Activity 有什么想法吗?

编辑: 我仍在研究,但使用 Android Fragment 可能会解决此问题,为此我会将 Activity 转换为 Fragment 或创建新的 Fragment 并添加 Activity 代码。不是 100% 肯定,但它可能会起作用。

谢谢

【问题讨论】:

    标签: android react-native


    【解决方案1】:

    您不能将活动显示为视图。

    活动不是视图。每个应用程序一次只能有一个已启动的活动。如果您想在具有生命周期的情况下将 Ui 进程加载为视图,则 Fragment 适合您。片段可以在 Ui 层次结构中表示为视图组件。

    Ref

    【讨论】:

    • 谢谢你,是的,我正在向 Fragment 方向发展。您能否提供一些将 Activity 转换为 Fragment 的示例?方法是什么,创建一个 Fragment 并将 Activity 移植到上面,或者只是将 Activity 转换为 Fragment? ty
    【解决方案2】:

    经过一番研究,我发现 React Native 0.66 版本添加了有关使用 Native Fragments 的文档。

    这是带有示例的文档: https://reactnative.dev/docs/native-components-android#1-create-a-fragment

    我已按照文档中的步骤将活动转换为片段,这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2016-05-19
      • 1970-01-01
      • 2023-01-05
      • 2017-02-13
      相关资源
      最近更新 更多