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


在一个 EditText Android元素可以阻止“全屏编辑模式”在横向激活 android:imeOptions="flagNoExtractUi" (如详细说明 这里)。

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


12935
2017-09-26 21:30


起源



答案:


从v0.40.0开始React Native's TextInput 有道具 disableFullscreenUI,这套 imeOptions="flagNoExtractUi" 内部。

<TextInput disableFullscreenUI={true} />


6
2018-03-22 08:29





一种解决方案是编写自定义本机组件并将其绑定到React Native项目。你基本上会创建一个自定义 EditText 要么默认设置为imeOptions android:imeOptions="flagNoExtractUi" 或者对于更动态的行为,您可以在自定义EditText中创建一个setter并使用它来公开它 @ReactProp。这样,您就可以通过React Native项目中的组件道具设置它。

编写自定义UI组件(尤其是像这样的简单组件)非常简单 许多 比听起来容易。有一个体面的 文件 还有很多教程。

希望这可以帮助。


4
2017-10-15 22:32



谢谢!接受因为看起来这可能是目前唯一的方法。我会试一试,如果我开始工作,我会发布一个链接到这里的组件供其他人使用。 - Nate
是不是可以通过这样做 setNativeProps?这甚至存在于Android上吗? - Matt Foley
@MattFoley使用 setNativeProps 在React Native组件上(Text)并不意味着您可以访问本机组件的属性(TextView)没有暴露于React Native的那个。正如文档所述,您使用 setNativeProps  直接对组件进行更改而不使用state / props来触发重新呈现整个子树。如果本机组件的属性在React Native中不可用,则除非您创建自己的自定义本机组件并将其绑定到React Native,否则无法访问它。 - George
有意思,谢谢你的澄清。 - Matt Foley


答案:


从v0.40.0开始React Native's TextInput 有道具 disableFullscreenUI,这套 imeOptions="flagNoExtractUi" 内部。

<TextInput disableFullscreenUI={true} />


6
2018-03-22 08:29





一种解决方案是编写自定义本机组件并将其绑定到React Native项目。你基本上会创建一个自定义 EditText 要么默认设置为imeOptions android:imeOptions="flagNoExtractUi" 或者对于更动态的行为,您可以在自定义EditText中创建一个setter并使用它来公开它 @ReactProp。这样,您就可以通过React Native项目中的组件道具设置它。

编写自定义UI组件(尤其是像这样的简单组件)非常简单 许多 比听起来容易。有一个体面的 文件 还有很多教程。

希望这可以帮助。


4
2017-10-15 22:32



谢谢!接受因为看起来这可能是目前唯一的方法。我会试一试,如果我开始工作,我会发布一个链接到这里的组件供其他人使用。 - Nate
是不是可以通过这样做 setNativeProps?这甚至存在于Android上吗? - Matt Foley
@MattFoley使用 setNativeProps 在React Native组件上(Text)并不意味着您可以访问本机组件的属性(TextView)没有暴露于React Native的那个。正如文档所述,您使用 setNativeProps  直接对组件进行更改而不使用state / props来触发重新呈现整个子树。如果本机组件的属性在React Native中不可用,则除非您创建自己的自定义本机组件并将其绑定到React Native,否则无法访问它。 - George
有意思,谢谢你的澄清。 - Matt Foley