写点什么

Flutter- 视频系列 -- 图解 -Android- 原生集成 -Flutter-Module

用户头像
Android架构
关注
发布于: 11 小时前

implementation project(':flutter')


3.2?AndroidStudio?工具引入

可采用?Flie -> Sync Project with Grdle Files?时,可通过?Import Flutter Module?方式引入;此时若报?The Gradle files could not be updated automatically?则需要手动?3.1?操作;



4. 原生与 Flutter 交互

Android?引用?Flutter?通常是两种,一种是新建一个?View?用来展示?Flutter?页面,另一种是?Fragment;其本质还是将?Flutter View?作为?Android View?的子?View?展示;


新建一个无标题栏的?FlutterActivity?和一个?FlutterFragment,在?MainActivity?添加一个按钮跳转到?FlutterActivity?展示?FlutterFragment


public class FlutterActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_flutter);


getSupportFragmentManager().beginTransaction().replace(R.id.container, new FlutterFragment()).commit();}}


public class FlutterFragment extends Fragment {@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container, false);getActivity().getSupportFragmentManager().beginTransaction().add(R.id.container, Flutter.createFragment("/")).addToBackStack("flFlutter.createFragmentutter").commit();


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


return rootView;}}


通过?Flutter.createFragment("/")?设置跳转路由;


5. 签名打包

直接运行?debuge?模式一切正常,只是在跳转?Flutter?时不如直接跳转原生流畅,后期优化;而打包成?release?包与?Android?原生相同,无需特别处理?Flutter Module

注意事项

1. minSdkVersion >= 16

在集成过程中,使用?Flutter?时会提示?SDK?最低版本在?16?以上,需注意;

2. Flutter Module 路径

在学习过程中,无论是命令行创建还是?AndroidStudio?工具创建?Flutter Module?路径并非一定要与?Android Project?同级,关键是?setting.gradle?路径配置;


new File?文件第一个参数?settingsDir.parentFile?即?Android Project?所在文件路径,第二个参数为?Flutter Module?中?.groovy?路径;我们可以使用只有一个参数的完整路径;


// 两个参数 evaluate(new File(settingsDir.parentFile,'my_flutter/.android/include_flutter.groovy'))


// 一个参数 evaluate(new File('/Users/user/Documents/workspace/ACE_Flutter/flutter_module01/flutter_module01/.android/include_flutter.groovy'))

3. 新的 evalute 会覆盖上一个

测试是,在?setting.gradle?中引入多个?evalue,以为可以同时引入多个?Flutter Module,而实际是后面的引入会覆盖先前的引入,以最后一个?evalue module?为准;

最后

最后我想说:对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Flutter-视频系列--图解-Android-原生集成-Flutter-Module