0

Flutter にネイティブの Android アクティビティを実装することができました。コードは次のようになります。

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class Communication extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return MyCommunication();
  }
}

class MyCommunication extends State<Communication> {
  static const platform = const MethodChannel("test_activity");
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      body: FutureBuilder<Widget>(
          future: getNewActivity(),
          builder: (BuildContext context, AsyncSnapshot<Widget> snapshot) {
            if (snapshot.hasData)
              return snapshot.data;
            else
              return Container(child: CircularProgressIndicator());
          }),
    ));
  }

  Future<Widget> getNewActivity() async {
    try {
      return await platform.invokeMethod('startNewActivity');
    } on PlatformException catch (e) {
      print(e.message);
    }
  }
}

問題は、ネイティブ アクティビティから [戻る] ボタンをタップして表示された画面に移動すると、snapshot.hasData が false の場合に返される円形の進行状況インジケーターを含むコンテナーがアプリに表示されることです。

この画面を閉じて、目的のプレゼンテーション ビューに移動するには、[戻る] をもう一度タップする必要があります。明らかに、コードで正しく行っていないことがあります。どうすればこれを修正できますか?

4

1 に答える 1