【发布时间】:2020-09-05 10:26:58
【问题描述】:
在此我正在创建一个应用程序,在该应用程序中,我通过使用这些链接https://flutter.dev/docs/development/add-to-app、https://flutter.dev/docs/development/add-to-app/android/add-flutter-screen 在现有的 android 应用程序中成功添加了颤振模块。这里的启动屏幕是原生 android,然后我添加了一个按钮来导航到颤动屏幕。但我的问题是我如何从颤动屏幕导航到原生 android 屏幕。这里是原生android和dart代码的代码。 注意:我已经在build.gradle中添加了flutter模块的依赖,在settings.gradle中也添加了代码,代码就不说了。
MainActivity.java
Button btn1;
btn1=findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(FlutterActivity.createDefaultIntent(v.getContext())); //this navigate to flutter page
}
});
Main.dart
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Demo'),),
body: Container(
child: Center(
child: RaisedButton(
onPressed: (){
//Here how do i navigate to Native Android Screen ?
},
child: Text('Navigate to Android'),
),
),
),
);
}
}
【问题讨论】:
-
@Benjamin 是的,我已经看到了,但找不到从颤动页面导航或移动到 android 页面的代码。
-
您只需在收到消息后导航。
-
@Benjamin 在 Flutter 导航到新屏幕时,我们使用此代码
Navigator.push( context, MaterialPageRoute(builder: (context) => SecondPage()), );那么使用此代码如何导航或移动到原生 android 页面? -
你不能,因为 Flutter 不知道这些页面的存在。就像在那个答案中一样,您必须从 Flutter 向 Android 发送一条消息,告诉它导航,并且在收到该消息后您必须更改视图。另一种选择是在 Flutter 中重新创建屏幕,以便您可以使用
Navigator类进行导航。
标签: android android-studio flutter dart