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);
我已经按照 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);