小编Sid*_*ora的帖子

Jetpack Compose 中的 DropDownMenu 帧丢失和滞后

所以我现在有点进退两难。

开始时

我有一个国家/地区列表,我想允许用户通过显示下拉菜单来选择其中任何一个,之前没有jetpack compose方式,我有一个扩展,这View反过来View.setupDropDown加载aListPopupWindow并将其锚定到当前视图,并显示所有项目并且工作完美,没有卡顿或任何帧丢失。

喜欢

val dropDown = ListPopupWindow(context)
    dropDown.setAdapter(
        ArrayAdapter(
            context,
            android.R.layout.simple_spinner_dropdown_item,
            list.map { itemFormatter(it) })
    )
Run Code Online (Sandbox Code Playgroud)

并显示它,或者我可以使用自定义

泡菜

因此,现在我正在 Jetpack Compose 中构建相同的体验,并使用DropDownMenu它加载所有这些项目,Column当项目数量较少时,它可以正常工作,但是,当涉及大量项目时,例如包含更多项目的列表然后是 100 个项目,它会丢掉几帧,并PopUp在延迟后显示。

我查看了内部并尝试通过将所有这些文件复制到示例项目中来替换ColumnLazyColumn但这不起作用 Intrinsic measurements is not yet supported for the Subcomposables,它会抛出异常并失败。

 DropdownMenu(
        toggle = toggle,
        expanded = showMenu,
        onDismissRequest = { onDismiss() },
    ) {
        options.forEach{ item ->
            DropdownMenuItem(onClick = {
                onDismiss()
            }) {
                Text(text = item)
            } …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose android-jetpack-compose-list

13
推荐指数
1
解决办法
1494
查看次数

如何使用 SQFLite 或 Moor 库将 JSON 数据存储到颤振中的数据库表中

如何在 flutter 应用程序的数据库中插入字符串列表,我尝试通过将 json 数组编码为字符串将其保存为字符串数据类型,但随后技能数组每次都需要显式解码,如下所示,每当我需要返回对象时数据库。

List<User> userResponse = await tempDatabase.allItems;
      jsonData = Result.fromJson({
        "name": userResponse[0].name,
        "skills": jsonDecode(userResponse[0].skills)
      });
Run Code Online (Sandbox Code Playgroud)

这是我的 json 响应

{
  "result": [
    {
      "name":"Sidhant Rajora",
      "skills": [
        "C++",
        "Java",
        "Python",
        "React"
      ]
    },
    {
      "name":"Adity Rajora",
      "skills": [
        "C++",
        "Java",
        "Python"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我有这种 JSON 响应,它创建的模型 PODO 就像

class UsersJson {
  List<Result> result;

  UsersJson({this.result});

  UsersJson.fromJson(Map<String, dynamic> json) {
    if (json['result'] != null) {
      result = new List<Result>();
      json['result'].forEach((v) {
        result.add(new Result.fromJson(v));
      });
    }
  }

  Map<String, dynamic> …
Run Code Online (Sandbox Code Playgroud)

json dart flutter sqflite

6
推荐指数
1
解决办法
6681
查看次数

未获得新令牌谷歌授权

每当我尝试使用refresh_token获取新的access_token来访问用户电子邮件时,我都会收到错误

{
    "error": "invalid_grant",
    "error_description": "Malformed auth code."
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用邮递员点击URL

 code:1/XXXXXXXX 
 client_id:XXXXXXXXX
 client_secret:XXXXXXXXXX
 grant_type:authorization_code
 redirect_uri:http://localhost
 access_type:offline
Run Code Online (Sandbox Code Playgroud)

而不是每次收到格式错误的身份验证代码时都获取新的 access_token 和 refresh_token

android google-oauth

5
推荐指数
1
解决办法
1029
查看次数