Flutter 251006
安卓
主页面的配置
<activity
android:name=".MainActivity"
对应Java或kotlin代码同名路径src/main/kotlin/com/example/xxx/下的对应主类文件MainActivity.java MainActivity.kt
布局Widge
Row主轴是水平方向,Column主轴是垂直方向
对齐都是靠mainAxisAlignment和crossAxisAlignment调整
Getx相关
前后数据变动依靠obs变量
var count = 0.obs;
// 使用 .obs 将变量转换为响应式变量
void increment() => count.value++;
// 修改值时通过 .value 访问实际数据
child: Obx(() { // 使用 Obx 包裹需要监听变化的部件
return Text(
'Count: $ {controller.count}',
style: TextStyle(fontSize: 24),
);
或GetBuilder<XxLogic>(builder: (logic) {}根据响应重新构建组件
滑动组件事例
Scrollable(
viewportBuilder: (c, v) =>
ListView.builder(
itemCount: l.length,
itemBuilder: (ctx, i) =>
ListTile(
title: Text(l[i].appName),
subtitle: Text(''),
trailing: logic.timeFormat(l[i], logic.lt),
)
),
);
对象列表属性排序事例
void sort(int f){
list = [];
list.addAll(_l);
if (f > 0) {
list.sort((a,b) {
var x;
switch(f){
case 1: x = a.usage.inSeconds.compareTo(b.usage.inSeconds);
case 2: x = b.usage.inSeconds.compareTo(a.usage.inSeconds);
case 3: x = a.appName[0].compareTo(b.appName[0]);
case 4: x = b.appName[0].compareTo(a.appName[0]);
}
return x;
});
}
时间选择事例
DateTimeRange dtr = (await showDateRangePicker(
context: ctx,
firstDate: DateTime.now().subtract(Duration(days: 30)),
lastDate: DateTime.now().add(Duration(days: 30)),
initialDateRange: dtr,
// routeSettings: Navigator.defaultGenerateInitialRoutes(navigator, initialRouteName)
))!;

浙公网安备 33010602011771号