我正在开发我的Android库和ReactNative之间的桥梁,以便能够在混合应用程序上使用我的库。
我首先使用react-native init
创建了一个基本应用,其中包含默认的Android和iOS文件夹
然后我使用gradle
导入了我的库,并创建了扩展ReactContextBaseJavaModule
和ReactPackage
的文件,以确保App.js
可以查看并调用我的库中的方法,但现在我有一个问题。
我从React Native调用我的Android库的其中一种方法返回了我需要显示的Fragment
,我不知道该怎么做。
到目前为止,我能够在MainActivity.java
文件夹下的React Native项目中的android
中编写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应用程序将使用哪个布局
P.S。我尝试在setContentView(R.layout.main)
方法中添加行onCreate
,但这样做是为了让App.js
不再可见(可能是因为覆盖了ReactNative“布局”
答案 0 :(得分:2)
您可以将自己的容器添加到现有布局中。例如:
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