IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter-视频系列--图解-Android-原生集成-Flutter-Module -> 正文阅读

[移动开发]Flutter-视频系列--图解-Android-原生集成-Flutter-Module

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 {
@Override
protected 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
@Override
public 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();

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

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

路径配置;

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?为准;

最后

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

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

上述【高清技术脑图】以及【配套的架构技术PDF】可以 关注我 【主页简介】 或者【简信】免费获取

Android学习PDF+架构视频+面试文档+源码笔记

639027674080)]

上述【高清技术脑图】以及【配套的架构技术PDF】可以 关注我 【主页简介】 或者【简信】免费获取

Android学习PDF+架构视频+面试文档+源码笔记

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章           查看所有文章
加:2021-12-10 11:10:25  更:2021-12-10 11:13:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:45:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码