我正在开发我的Android库和ReactNative之间的桥梁,以便能够在混合应用程序上使用我的库。
我首先用react-native init创建了一个基本的应用,它有默认的Android和iOS文件夹
然后,我用gradle导入了我的库,并创建了扩展ReactContextBaseJavaModule和ReactPackage的文件,以确保App.js可以看到并调用我的库中的方法,但现在我遇到了一个问题。
我从React Native向我的安卓库调用的这些方法中,有一个方法返回了我需要显示的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的“布局”
发布于 2018-02-02 08:18:44
您可以将自己的容器添加到现有布局中。例如:
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
                        )
                    }
            )现在您可以将您的片段添加到此容器中。此外,这个库可能会有帮助- https://github.com/hudl/react-native-android-fragment
https://stackoverflow.com/questions/48566027
复制相似问题