Android Fragments Flutter -是否可以在Flutter应用程序中导入片段?

d6kp6zgx  于 2023-04-30  发布在  Android
关注(0)|答案(2)|浏览(125)

在Flutter中可以调用Java code from Dart。此外,插件android_intent允许使用Dart代码启动Java Android Activity
但是,如果我们想在Flutter Widget中使用Android片段,这可能吗?我们怎么才能做到这一点呢?
或者使用Fragments的唯一方法是在Java中声明一个新的Activity,并在Flutter中调用启动Activity?(就像我一开始说的)

9rnv2umw

9rnv2umw1#

到目前为止,我还没有找到任何直接在flutter应用程序中实现android组件的方法。然而,可能相反的事情,那就是在Android应用程序中使用Flutter片段。因此,我可以为您提出一个解决这个问题的方法,可能会导致相同的结果:
1.使用方法通道启动一个新的android Activity:

void startAndroidActivity() async {
    //TODO: fix result type, etc.
    dynamic result = await MethodChannel("CHANNEL_X").invokeMethod('METHOD');
 }
public class MainActivity extends FlutterActivity {

    private MethodChannel.Result result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        new MethodChannel(getFlutterView(), "CHANNEL_X").setMethodCallHandler((call, result) -> {
            if (call.method.equals("METHOD")) {
                Intent intent = new Intent(this, MyActivity.class);
                this.result = result;
                startActivityForResult(intent, data);
            }
        });
        GeneratedPluginRegistrant.registerWith(this);
    }

 //TODO: Handle result

}

1.实现你的android组件并导入flutter片段。对于这个主题,我给你留下了这个参考:https://flutter.dev/docs/development/add-to-app/android/add-flutter-fragment
我可以给予你的另一个参考是这个,也许可以让你在Flutter中导入你想要的东西,但它需要更多的时间:https://medium.com/@KarthikPonnam/build-your-own-plugin-using-platformviews-flutter-5b42b4c4fb0a

eh57zj3b

eh57zj3b2#

你可以使用数据绑定的方法来访问片段

相关问题