Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Textinput(React Native-Android)-支持onKeyPreIme_Android_React Native_React Native Android - Fatal编程技术网

Textinput(React Native-Android)-支持onKeyPreIme

Textinput(React Native-Android)-支持onKeyPreIme,android,react-native,react-native-android,Android,React Native,React Native Android,在本机代码(java)中,我可以使用handleonKeyPreIme 像这样 xml react native是否支持在TextInput中执行此操作 谢谢你的帮助 编辑:我的目标是在键盘显示时停止后按。 使用onKeyPreIme可以轻松地使用本机。 我尝试使用React native的@Override onBackPress和BackHandler,但也不起作用 // MainActivity.java @Override public void onBackPressed() {

在本机代码(java)中,我可以使用handle
onKeyPreIme

像这样

xml

react native是否支持在
TextInput
中执行此操作

谢谢你的帮助

编辑:我的目标是在键盘显示时停止后按。 使用
onKeyPreIme
可以轻松地使用本机。 我尝试使用React native的
@Override onBackPress
BackHandler
,但也不起作用

// MainActivity.java

@Override
public void onBackPressed() {
  return;
}

显示键盘时,此代码不起作用。

您可以使用react native的
BackHandler
键盘
组件轻松完成此操作。只需检查键盘是否显示,然后在BackHandler中处理。@Heisen Berg如何使用BackHandler来强制键盘在android中显示时不隐藏?我已经试过了,但键盘还是隐藏着。我通过添加
console.log
BackHandler
进行测试,但当键盘显示时,console不会在按下Back键时显示任何内容。哦,这可能不会捕获到
onPreIme
。那很有趣
const blackBack = () => true;

Keyboard.addListener('keyboardDidShow', () => {
    BackHandler.addListener('hardwareBackPress', blackBack)
});

Keyboard.addListener('keyboardDidHide', () => {
    BackHandler.removeListener('hardwareBackPress', blackBack)
});
// res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<com.myapp.CustomEditText
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/someid"
  android:layout_height="wrap_content"
  android:layout_width="match_parent"
/>
// com/myapp/MainActivity.java

package com.myapp;

import android.os.Bundle;
import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {
...
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); //this line test TextInput
    ...  
  }
}
// MainActivity.java

@Override
public void onBackPressed() {
  return;
}
const blackBack = () => true;

Keyboard.addListener('keyboardDidShow', () => {
    BackHandler.addListener('hardwareBackPress', blackBack)
});

Keyboard.addListener('keyboardDidHide', () => {
    BackHandler.removeListener('hardwareBackPress', blackBack)
});