自学flutter记录(一)

本文介绍Flutter开发中的几个实用技巧:如何实现Android沉浸式状态栏效果并去除默认遮罩;使用http get请求从指定URL获取数据;TextField组件的两种用法——通过焦点管理器自动获取焦点及使用TextEditingController来获取输入框内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android沉浸式状态栏(去掉状态栏默认遮罩)

    // 设置状态栏背景及颜色
    SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(statusBarColor: Colors.transparent);
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
    // SystemChrome.setEnabledSystemUIOverlays([]); //隐藏状态栏

get请求

	//get示例url:https://api.uomg.com/api/rand.avatar?sort=女&format=json
	//Uri解析 域名,路径,参数
    var url = Uri.https("api.uomg.com", "/api/rand.avatar", {"sort": "女", "format": "json"});
    //发送请求
    var response = await http.get(url, headers: {});
    //返回状态码
    // print('Response status: ${response.statusCode}');
    //返回body
    print('Response body: ${Utf8Codec().decode(response.bodyBytes)}');

TextField(动态焦点)

//定义username输入框的焦点管理器
final _username_focus = FocusNode();
void initState() {
  // TODO: implement initState
  super.initState();
  //此方法监听build的第一帧绘制完成
  WidgetsBinding.instance.addPostFrameCallback((_) {
  	//使TextField获取焦点
    FocusScope.of(context).requestFocus(_u_focus);
  });
}
//build
TextField(
	FocusNode:_username_focus,//绑定焦点管理器
)

TextField(controller)

//定义username输入框的controller
final _username_controller = TextEditingController();

//build
TextField(
	controller:_username_controller,//在相关事件处理函数里直接获取_username_controller.text即可获取输入框value
)
### 如何在简历中展示 Flutter 开发的专业技能 为了有效地向潜在雇主传达您的 Flutter 开发能力,可以按照以下几个方面来构建和优化您的简历: #### 1. 技能概述部分 在简历的开头部分,通常是个简短的职业概要或技能列表区域,在这里您可以清晰地列出与 Flutter 相关的核心技能。例如: - **熟练掌握 Dart 编程语言**[^1]。 - **精通 Flutter 的 Widget 构建机制以及状态管理方法(如 Provider、Riverpod 或 Bloc)**。 - **具备跨平台开发经验,能够高效创建兼容 iOS 和 Android 平台的应用程序**[^3]。 这些关键词不仅表明了您对工具链的理解程度,还暗示着您有能力应对实际工作中可能遇到的技术挑战。 #### 2. 项目经验详述 具体案例是最有力的证明手段之。当描述过往参与过的项目时,请务必强调以下几点: - 使用 Flutter 实现的功能模块及其复杂度; - 解决的具体问题或者克服的技术难点; - 应用最终效果及用户反馈情况;如果有可能的话,提供可量化的成果数据支持说明【比如提升了多少性能指标】。 示例描述如下: > 参与某短视频社交类 App 前端重构工作,采用 Flutter 完成核心界面重写,引入自定义动画组件库减少重复代码约30%,并利用 Riverpod 进行全局状态同步处理,显著改善多页面间交互流畅性 【假设数据】 ^[1]^. 另外值得注意的是,即使是小型个人练习性质的小型 app 制作经历也值得记录下来,只要它们体现了某些独特的创意或是深入探索某个特定领域的能力即可。 #### 3. 教育培训/自我提升活动 如果您参加过任何正式认证课程(如 Google 提供的相关官方教程),或者是持续自学新版本特性更新等内容,则应在相应版块提及出来。这反映了候选人愿意不断进步的心态,同时也间接验证了他的技术水平可信度较高。 ```python # 示例:简单的计数器应用程序演示基本概念 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: CounterPage(), ); } } class CounterPage extends StatefulWidget { @override _CounterPageState createState() => _CounterPageState(); } class _CounterPageState extends State<CounterPage> { int counterValue = 0; void incrementCounter() { setState(() { counterValue++; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('Flutter Example')), body: Center(child: Text('$counterValue', style: TextStyle(fontSize: 24))), floatingActionButton: FloatingActionButton(onPressed: incrementCounter, child: Icon(Icons.add)), ); } } ``` 上述代码片段虽然简单,但它展示了开发者对于基础 UI 组件组合运用以及状态变化控制的基本功底^[1]^。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值