3

ナビゲーターを使用して、反応するネイティブのAndroidアプリから家に帰り、アプリに戻ると、常に最初のルートであるスプラッシュ画面から始まります。アプリを再度開いたときに表示されるコンポーネントの最後に表示されていたコンポーネントを保持する方法はありますか?

class AwesomeProject extends Component {
  render() {
    return (
      <Navigator
            style={{ flex:1 }}
             initialRoute={{ id: 'SplashPage' }}
             renderScene={ this.renderScene }
      />
    );
  }
    renderScene(route, navigator) {
      if (route.id === 'SplashPage') {
        return (
          <SplashPage
            navigator={navigator} {...route.passProps}
             />
        );
      }else if(route.id === 'HomePage'){
        return (
          <HomePage
            navigator={navigator} {...route.passProps}
             />
        );
      }else if(route.id === 'ListViewPage'){
        return (
          <ListViewPage
            navigator={navigator} {...route.passProps}
             />
        );
      }

    }

}
4

3 に答える 3

0

ホームを押したときにアプリがライブであることを確認できますか?

于 2016-06-03T08:01:33.627 に答える
0

次のコードを /android/app/src/main/java/com//MainActivity.java に追加する必要があります。そのため、アプリケーションのスタックを維持します。

     @Override
     public void onBackPressed() {
       if (mReactInstanceManager != null) {
          mReactInstanceManager.onBackPressed();
        } else {
          super.onBackPressed();
        }

上記の回答が得られない場合は、以下の参照に従ってください: https://facebook.github.io/react-native/docs/native-modules-android.html

上記の参照の最後に、react-native のアプリケーションのライフサイクル イベントがあります。したがって、ネイティブ android の onPause/onDestroy/onStop メソッドと同じ戦略に従って、問題を解決してください。

于 2016-06-03T04:40:06.100 に答える
0

私の最初の提案は、スプラッシュスクリーンをシーンとして使用しないことです。そのような方法で使用すると、スプラッシュスクリーンではなくコンポーネントになります。以下のリンクに記載されているネイティブ Java コードを使用して、問題を魅力的に解決してください。

https://github.com/react-native-component/react-native-smart-splash-screen

これにより、問題セクションを見て修正できる特定のインポートエラーがあります。または、スプラッシュスクリーンモジュールの完全な使用を含む github のコードを確認してください。

https://github.com/UjjwalNepal/歯科

お役に立てれば。ありがとうございました

于 2017-02-24T03:34:02.340 に答える