Можете ли вы отключить полноэкранное редактирование в ландшафте в React Native Android?

В элементе EditText Android вы можете запретить "полноэкранный режим редактирования" активироваться в альбомном режиме с помощью android:imeOptions="flagNoExtractUi" (как описано ниже здесь).

Есть ли способ воспроизвести одно и то же поведение с компонентом React Native TextInput? Я искал документы и StackOverflow и не нашел решения.

Ответ 1

Начиная с v0.40.0 React Native TextInput имеет prop disableFullscreenUI, который устанавливает imeOptions="flagNoExtractUi" внутренне.

<TextInput disableFullscreenUI={true} />

Ответ 2

Одним из решений было бы написать собственный пользовательский компонент и связать его с вашим проектом React Native. В основном вы создадите пользовательский EditText, который либо по умолчанию имеет значение imeOptions, либо android:imeOptions="flagNoExtractUi", либо для более динамичного поведения вы можете создать сеттер в своем пользовательском EditText и выставить его с помощью @ReactProp. Таким образом, вы сможете установить его через компонентные реквизиты из вашего проекта React Native.

Написание пользовательского компонента пользовательского интерфейса (особенно простого такого типа) довольно прямолинейно и намного проще, чем может показаться. Там есть достойная документация и множество обучающих программ там.

Надеюсь, что это поможет.