android - 在 React Native 应用程序中加载 fragment

标签 android android-fragments react-native

我正在开发我的 Android 库和 ReactNative 之间的桥梁,以便能够在混合应用程序上使用我的库。

我首先使用 react-native init 创建了一个基本应用程序,它具有默认的 Android 和 iOS 文件夹

然后,我使用 gradle 导入我的库,并创建了扩展 ReactContextBaseJavaModuleReactPackage 的文件,以确保 App.js 可以查看并调用我的库中的方法,但现在我遇到了问题。

我从 React Native 调用到 Android 库的其中一个方法返回了我需要显示的 Fragment,但我不知道如何执行。

到目前为止,我能够在 android 文件夹下的 React Native 项目中的 MainActivity.java 中编写 java 代码,以这种方式处理它

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   fragment = MyLibrary.getFragmentMethod();
   getFragmentManager().beginTransaction().add(fragment, TAG).commit();
}

我想做的更像是:

getFragmentManager().beginTransaction().replace(R.id.frame_layout_id, fragment, TAG).commit();

但我不知道如何定义我的 React Native 应用程序将使用哪种布局

附:我尝试在 onCreate 方法中添加行 setContentView(R.layout.main) ,但这样做导致 App.js不再可见(可能是因为覆盖了 ReactNative“布局”

最佳答案

您可以将自己的容器添加到现有布局中。例如:

window.decorView.findViewById<ViewGroup>(android.R.id.content)
            .addView(
                    FrameLayout(this).apply {
                        id = R.id.fragment_container
                        layoutParams = FrameLayout.LayoutParams(
                                FrameLayout.LayoutParams.MATCH_PARENT,
                                FrameLayout.LayoutParams.MATCH_PARENT
                        )
                    }
            )

现在您可以将 fragment 添加到此容器中。 另外这个库可能会有帮助 - https://github.com/hudl/react-native-android-fragment

关于android - 在 React Native 应用程序中加载 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48566027/

相关文章:

android - 通过android模拟器连接到服务器

java.lang.NullPointerException : Attempt to write to field 'int android. 支持.v7.widget.RecyclerView

java - 从另一个 Activity 停止/启动媒体播放器

android - 如何从 Activity 中返回到最后一个 fragment ?

java - Android:无法显示 JSON 数据,原因未知

android - auth().signInWithPhoneNumber() 不适用于 react native

javascript - 如何从这段代码中获取Element

java - 从转换毫秒显示小时数显示不正确

ios - React Native - 为什么 React Native 应用程序需要连接到本地主机?

react-native - 如何将静态导航选项与功能组件一起使用?