你能在React原生Android中禁用横向全屏编辑吗?

你能在React原生Android中禁用横向全屏编辑吗?,android,react-native,react-native-android,Android,React Native,React Native Android,在EditTextAndroid元素中,您可以使用Android:imeOptions=“flagNoExtractUi”(详细说明)防止在横向中激活“全屏编辑模式” 有没有办法用React NativeTextInput组件复制相同的行为?我已经搜索了文档和StackOverflow,但没有找到解决方案。一个解决方案是编写自定义本机组件并将其绑定到您的React本机项目。基本上,您可以创建一个自定义的EditText,默认情况下将imeOptions设置为android:imeOptions=

EditText
Android元素中,您可以使用
Android:imeOptions=“flagNoExtractUi”
(详细说明)防止在横向中激活“全屏编辑模式”


有没有办法用React Native
TextInput
组件复制相同的行为?我已经搜索了文档和StackOverflow,但没有找到解决方案。

一个解决方案是编写自定义本机组件并将其绑定到您的React本机项目。基本上,您可以创建一个自定义的
EditText
,默认情况下将imeOptions设置为
android:imeOptions=“flagNoExtractUi”
,或者为了实现更动态的行为,您可以在自定义的EditText中创建一个setter,并使用
@ReactProp
将其公开。这样,您就可以通过React本机项目中组件的道具进行设置

编写自定义UI组件(特别是像这样的简单组件)非常简单,而且比听起来容易得多。那里有很多不错的教程


希望这能有所帮助。

从v0.40.0开始,React Native的
TextInput
具有在内部设置
imeOptions=“flagNoExtractUi”
的属性


谢谢!接受,因为这似乎是目前唯一的办法。我会尝试一下,如果我让它工作起来,我会在这里发布一个组件链接,供其他人使用。是否可以通过
setNativeProps
?Android上是否存在这种情况?@MattFoley在React-Native组件(
Text
)上使用
setNativeProps
)并不意味着您可以访问未暴露于React-Native组件的本机组件(
TextView
)的属性。如文档所述,您可以使用
setNativeProps
直接对组件进行更改,而无需使用state/props触发整个子树的重新渲染。如果本机组件的属性在React-native中不可用,则除非创建自己的自定义本机组件并将其绑定到React-native,否则无法访问它。