欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

android删除键监听,「React Native」Android返回键监听

发布时间:2024/9/27 Android 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 android删除键监听,「React Native」Android返回键监听 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在需要做监听的js中添加

componentWillMount() {

if (Platform.OS === 'android') {

BackHandler.addEventListener('hardwareBackPress', this.onBackHandler);

}

}

componentWillUnmount() {

if (Platform.OS === 'android') {

BackHandler.removeEventListener('hardwareBackPress', this.onBackHandler);

}

}

onBackHandler = () => {

// this.onMainScreen and this.goBack are just examples, you need to use your own implementation here

// Typically you would use the navigator here to go to the last state.

if (!this.onMainScreen()) {

this.goBack();

return true;

}

return false;

};

RN的容器Activity实现DefaultHardwareBackBtnHandler接口

public class XXXActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {

//...

private ReactInstanceManager mReactInstanceManager;

@Override

public void invokeDefaultOnBackPressed() {

if (mReactInstanceManager != null) {

mReactInstanceManager.onBackPressed();

} else {

super.onBackPressed();

}

}

//...

}

RN的容器为Fragment时,DefaultHardwareBackBtnHandler没起作用

这时我们需要在该Fragment中添加接收返回事件的代码

public boolean onKeyUp(int keyCode, KeyEvent event) {

if (mReactInstanceManager != null) {

switch (keyCode) {

//...

case KeyEvent.KEYCODE_BACK: {

mReactInstanceManager.onBackPressed();

return true;

}

}

}

return false;

}

并且在Activity中向该Fragment注入onkeyUp事件

@Override

public boolean onKeyUp(int keyCode, KeyEvent event) {

return fragment.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event);

}

总结

以上是生活随笔为你收集整理的android删除键监听,「React Native」Android返回键监听的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。