我正在开发我的 Android 库和 ReactNative 之间的桥梁,以便能够在混合应用程序上使用我的库。
我首先使用 react-native init
创建了一个基本应用程序,它具有默认的 Android 和 iOS 文件夹
然后,我使用 gradle
导入我的库,并创建了扩展 ReactContextBaseJavaModule
和 ReactPackage
的文件,以确保 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/