Android Fragment 未显示在 React Native App 中
Posted
技术标签:
【中文标题】Android Fragment 未显示在 React Native App 中【英文标题】:Android Fragment not displayed in React Native App 【发布时间】:2021-12-14 16:54:33 【问题描述】:我已按照 RN 文档创建了一个 android 原生片段: https://reactnative.dev/docs/native-components-android#1-create-a-fragment
片段已加载,我可以在布局检查器中看到它,但是正如您在屏幕截图中看到的那样,它位于视图的最底部,我假设这就是我看不到的原因我在 Fragment 内部的 TextView。
那么,需要做什么才能将 CustomView 带到最前面呢?
我试过拨打:myFragment.customView.bringToFront();
,但没有成功。
commit() 总是返回 -1:
activity.getSupportFragmentManager()
.beginTransaction()
.add(reactNativeViewId, myFragment, String.valueOf(reactNativeViewId))
.commit();
我已经按照文章,来回查看说明,一切都在那里。
我创建了一个 repo 来帮助调试问题: https://github.com/wilsolutions/react-native-experiments
有什么想法吗?
谢谢
【问题讨论】:
【参考方案1】:我编写了那部分文档。我在此 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);
【讨论】:
太好了!谢谢!!!以上是关于Android Fragment 未显示在 React Native App 中的主要内容,如果未能解决你的问题,请参考以下文章
回收站视图未在 Fragment (Android) 上显示项目
显示 DialogFragment 时调用 Fragment 未暂停