您可以在 React Native Android 中禁用横向全屏编辑吗?

Can you disable fullscreen editing in landscape in React Native Android?

EditText Android 元素中,您可以使用 android:imeOptions="flagNoExtractUi" 阻止 "fullscreen editing mode" 在横向激活(详见 here)。

有什么方法可以用 React Native TextInput 组件复制相同的行为吗?我搜索了文档和 Whosebug,但没有找到解决方案。

一种解决方案是编写自定义本机组件并将其绑定到您的 React Native 项目。您基本上会创建一个自定义 EditText ,默认情况下将 imeOptions 设置为 android:imeOptions="flagNoExtractUi" 或者为了更动态的行为,您可以在自定义 EditText 中创建一个 setter 并使用 [=12 公开它=].这样您就可以通过 React Native 项目中组件的 props 来设置它。

编写自定义 UI 组件(尤其是像这样简单的组件)非常简单,比听起来容易得多。那里有不错的 documentation 和大量教程。

希望对您有所帮助。

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

<TextInput disableFullscreenUI={true} />