小编Psy*_*ari的帖子

插入sqlite颤动而不冻结界面

我正在尝试使用flutter在sqlite内存数据库中插入很多行(大约12k或更多)。

我从API获取数据并使用计算函数来处理来自Json的数据。现在,我需要将这些数据添加到内存中的数据库中,以便使用批处理事务。

batchInsertEventSong(List<EventSong> rows) async {
   Database db = await instance.database;
   db.transaction((txn) async {
      Batch batch = txn.batch();
      for (var song in rows) {
         Map<String, dynamic> row = {
           DatabaseHelper.columnIdSong: song.id,
           DatabaseHelper.columnTitle: song.title,
           DatabaseHelper.columnInterpreter: song.interpreter
         };
         batch.insert(table, row);
       }
      batch.commit();
   }
}
Run Code Online (Sandbox Code Playgroud)

但是此函数在插入过程中阻止了我的UI,我也尝试了计算,但无法传递类db或类批处理。我没有弄清楚如何在另一个线程中执行此过程,或者(因为我不能使用隔离)执行而不阻塞我的UI。

有什么建议吗?

sqlite dart flutter sqflite

10
推荐指数
1
解决办法
567
查看次数

如何动态调整 CustomPainter 的大小

我需要使用自定义画家在 ListTile 内呈现我的自定义对象,以便绘制一些自定义文本。

ListTile(
  title: CustomPaint(
    painter: RowPainter.name(
      _titleFontSelected,
      _titleFont,
      text,
      index,
      MediaQuery.of(context),
      currentRow,
    ),
  ),
);
Run Code Online (Sandbox Code Playgroud)

在我的内部,我RowPainter用选定的字体绘制文本。当行太大时,它会自动换行并绘制到给定的油漆尺寸之外。

void paint(Canvas canvas, Size size)
Run Code Online (Sandbox Code Playgroud)

我喜欢这种行为,但如何调整绘画区域的高度?因为这是一个问题,因为它与下一个 List 行重叠。我知道CustomPaint有一个Size可设置的属性,但我只知道我的绘制函数内的文本尺寸,TextPainter getBoxesForSelection但为时已晚。

如果文本换行,如何动态“调整”行画家的高度?

dart flutter flutter-layout

5
推荐指数
2
解决办法
1915
查看次数

printf char []缓冲区溢出

我有这个问题,我的nome是一个char [20],如果我插入一些字符,数组进入溢出并写入另一个数组(cognome).

我试图用puts()更改scanf(),但最后一个不能正常工作,因为它跳出输入并且什么都不读.


有人知道解决方案吗?

这是代码

void addStudent(){
    struct student s;
    printf("Inserire Nome: ");
    scanf("%20s",s.nome);
    printf("\nInserire Cognome: ");
    scanf("%30s",s.cognome);
    printf("\nInserire eta': ");
    scanf("%d",&s.anni);
}
Run Code Online (Sandbox Code Playgroud)

结果

Inserire Nome: cjhsdjkhbsdkhfgsdjkhfgskjhgjkhsfs

Inserire Cognome: 
Inserire eta': 
Run Code Online (Sandbox Code Playgroud)

c printf

2
推荐指数
1
解决办法
919
查看次数

标签 统计

dart ×2

flutter ×2

c ×1

flutter-layout ×1

printf ×1

sqflite ×1

sqlite ×1