Android 片段未在 React Native 应用程序中显示

Android Fragment not displayed in React Native App

我已经按照 RN 文档创建了一个 Android 本机片段: https://reactnative.dev/docs/native-components-android#1-create-a-fragment

片段已加载,我可以在布局检查器中看到它,但是正如您在屏幕截图中看到的那样,它位于视图的最底部,我想这就是我无法看到的原因查看我在 Fragment 中的 TextView。

那么,需要做什么才能将 CustomView 置于最前面?

我试过调用:myFragment.customView.bringToFront(); 但没有成功。

commit()总是returns-1:

activity.getSupportFragmentManager()
      .beginTransaction()
      .add(reactNativeViewId, myFragment, String.valueOf(reactNativeViewId))
      .commit();

我已经按照文章进行操作,来回查看说明,一切都在那里。

我创建了一个 repo 来帮助调试问题: https://github.com/wilsolutions/react-native-experiments

有什么想法吗?

谢谢

我写了那部分文档。我在这个 PR 中添加了缺失的部分(并修复了导致布局不可预测的问题):

https://github.com/facebook/react-native-website/pull/2599。如果您还有什么想念的,请告诉我。

回答基本结束:

  • CustomView 必须像上面的 PR 一样扩展 FrameLayout
  • 在您的 ViewManager 的 setupLayout 方法中
ViewGroup parentView = (ViewGroup) root.findViewById(reactNativeViewId).getParent();

应该是

ViewGroup parentView = (ViewGroup) root.findViewById(reactNativeViewId);