为什么 Android 从带有后退按钮 React Native Navigation 的应用程序出来时,应用程序显示黑屏?
Why Android App showing blank screen when coming out of an App with back button React Native Navigation?
我正在研究 React Native 应用程序和用于在应用程序内导航的集成 react-native-navigation 包,link of package
Android 应用卡住并显示黑屏。如果我在 Android 应用程序的情况下使用后退按钮关闭应用程序,则会发生这种情况。最后我有一个列表屏幕,在重新打开应用程序后它显示空白屏幕,因为它没有再次调用 Navigation.registerComponent
,当使用后退按钮关闭时它可能会破坏应用程序。
这是我的 index.js::
中的代码
import { Navigation } from "react-native-navigation";
import App from './src/app';
Navigation.registerComponent("appName", () => App);
终止应用程序并重新启动将解决卡在闪屏上的问题。但不应该被困在第一位。只是通过后退按钮关闭时出现问题。
有人解决这个问题吗?请建议我如何在使用后退按钮关闭应用程序后再次处理和调用我的 Navigation.registerComponent
。
环境
- React Native Navigation 版本:2.12.0
- React Native 版本:0.58
- 平台:仅Android
要解决此问题,您需要在 react-native-navigation 包中进行修改。打开 NavigationActivity.java 文件并将以下代码替换为新代码:
替换此代码:
@Override
public void invokeDefaultOnBackPressed() {
if (!navigator.handleBack(new CommandListenerAdapter())) {
super.onBackPressed();
}
}
有了这个:
@Override
public void invokeDefaultOnBackPressed() {
if (!navigator.handleBack(new CommandListenerAdapter())) {
this.moveTaskToBack(true);
//super.onBackPressed();
}
}
保存更改后检查 android 设备。
我正在研究 React Native 应用程序和用于在应用程序内导航的集成 react-native-navigation 包,link of package
Android 应用卡住并显示黑屏。如果我在 Android 应用程序的情况下使用后退按钮关闭应用程序,则会发生这种情况。最后我有一个列表屏幕,在重新打开应用程序后它显示空白屏幕,因为它没有再次调用 Navigation.registerComponent
,当使用后退按钮关闭时它可能会破坏应用程序。
这是我的 index.js::
import { Navigation } from "react-native-navigation";
import App from './src/app';
Navigation.registerComponent("appName", () => App);
终止应用程序并重新启动将解决卡在闪屏上的问题。但不应该被困在第一位。只是通过后退按钮关闭时出现问题。
有人解决这个问题吗?请建议我如何在使用后退按钮关闭应用程序后再次处理和调用我的 Navigation.registerComponent
。
环境
- React Native Navigation 版本:2.12.0
- React Native 版本:0.58
- 平台:仅Android
要解决此问题,您需要在 react-native-navigation 包中进行修改。打开 NavigationActivity.java 文件并将以下代码替换为新代码:
替换此代码:
@Override
public void invokeDefaultOnBackPressed() {
if (!navigator.handleBack(new CommandListenerAdapter())) {
super.onBackPressed();
}
}
有了这个:
@Override
public void invokeDefaultOnBackPressed() {
if (!navigator.handleBack(new CommandListenerAdapter())) {
this.moveTaskToBack(true);
//super.onBackPressed();
}
}
保存更改后检查 android 设备。