我正在开发一个应用程序,这是在颤动开发我需要一个数据库,在颤动和本地安卓现在我正在使用sqlite在安卓侧和flutter.My前台服务基本上插入表中的数据,在颤动侧我显示,在listView.But中的数据这里是我面临的问题与sqllite。我需要监听对我的表所做的更改,即CRUD操作,并在我的flutter端监听这些更改:作为更新it的流。我在sqlbrite上读了一些文章,但由于可用的帮助太少,我不知道要do.And什么,我不能使用FIrebase DB,因为我的雇主不希望我使用它
发布于 2021-05-12 19:21:24
我也在做同样的事情,但是在我的例子中,对SQLite数据库的修改是使用setState直接在flutter ListView上进行的,下面是我的代码:
sms.dart (显示来自sqflite的ListView )
import 'package:flutter/material.dart';
import 'sqflite.dart';
void main() {
runApp(SmsApp());
}
class SmsApp extends StatefulWidget {
@override
_SmsAppState createState() => _SmsAppState();
}
class _SmsAppState extends State<SmsApp> {
List<SMSLog>? messages;
SMSHelper helper = new SMSHelper();
@override
void initState() {
super.initState();
}
void getMessages() async {
await helper.open();
final data = await helper.getAllSMS();
setState(() {
messages = data;
});
}
@override
Widget build(BuildContext context) {
getMessages();
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('SMS System'),
),
body: messages == null
? Container()
: ListView.builder(
itemCount: messages!.length,
reverse: true,
itemBuilder: (context, index) {
return ListTile(
title: Text(messages![index].department),
);
},
),
),
);
}
}另一种监听原生更改的方法是使用fartem在注释中声明的MethodChannel来通知flutter。
https://stackoverflow.com/questions/66176142
复制相似问题