小编Mah*_*alv的帖子

Jetpack compose 中可组合的中心

旧版本的 Jetpack composedev-0.x曾经有一个Center可组合的小部件居中。

但是,在该alpha版本中它已被删除,并且没有专门的可组合来处理此任务。

在我的情况下,我想在中心显示一个进度指示器,直到获取数据:

Surface(color = MaterialTheme.colors.background) {
    val state = viewModel.userState
    if (state == null) {
        CircularProgressIndicator()
    } else {
        UserDigest(state = state)
    }
}
Run Code Online (Sandbox Code Playgroud)

结果显然是这样的:

在此处输入图片说明

指示器在拐角处。


添加fillMaxSize()到指标也无济于事:

CircularProgressIndicator(modifier = Modifier.fillMaxSize())
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

那么,我如何将它(通常是 a composable)移动到一个区域的中心?

android android-jetpack-compose

9
推荐指数
1
解决办法
1090
查看次数

撰写导航中没有方法导航(字符串)

我正在尝试新的喷气背包库“ compose-navigation ”。

根据docs,要导航到路线,我应该使用navigate()采用String 的方法。

navController = rememberNavController()

// navigate
navController.navigate("/another_route")
Run Code Online (Sandbox Code Playgroud)

但是,不存在这样的方法, navigate(String)并且出现编译错误。

我错过了什么?

android android-jetpack-navigation android-jetpack-compose

9
推荐指数
1
解决办法
797
查看次数

Jetpack compose: Setting ImeAction does not close or change focus for the keyboard

I'm using Jetpack compose 1.0.0-alpha07. I made a login screen that contains two TextFields customized using other composables.

However, setting ImeAction in keyboardOptions does not seem to work. For instance ImeAction.Next does not move focus to the next TextField. I think I should do something to make it possible, but no document or article has talked even briefly about ImeOptions. Here's the code I have for the screen:

Login composable:

EmailEdit(onChange = { email.value = it }) …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

9
推荐指数
4
解决办法
3296
查看次数

华为 HMS 初始化没有 Json 文件

是否可以在没有初始化的情况下初始化 HMS agconnect-services.json并在运行时提供密钥?

使用类似的服务 (Fcm),我们可以初始化一个应用程序:

val builder = FirebaseOptions.Builder()
          .setApiKey(apiKey)
          .setGcmSenderId(senderId)
          .setProjectId(project)
          .setApplicationId(appId)
FirebaseApp.initializeApp(context, builder.build())
Run Code Online (Sandbox Code Playgroud)

因此,您无需json解析文件即可使用它。

是否有类似的解决方案使用HMSand AppGallery

顺便说一句,我正在尝试实现PushKit

huawei-mobile-services huawei-push-notification

8
推荐指数
1
解决办法
257
查看次数

相当于 Kotlin 协程中的 observeOn 和 subscribeOn

例如:

Observable.fromCallable<Int> {
   backgroundTask() // returns an integer
   }
   .observeOn(AndroidSchedulers.mainThread())
   .subscribeOn(Schedulers.io())
   .subscribe ({ number -> /* success */ }, { error -> /* fail */ })
Run Code Online (Sandbox Code Playgroud)

通常在后台(另一个线程)执行任务并将其结果返回到主线程中。

此代码片段将如何使用Kotlin 协程

android kotlin kotlinx.coroutines

7
推荐指数
1
解决办法
552
查看次数

华为推送套件:令牌在华为手机上返回空

我最近在华为手机上试用了我的应用程序。

问题是 PushKit 不返回令牌并且getToken结果为空。

在我得到的日志中GetTokenTask receive a empty token, please check HmsMessageService.onNewToken receive result.也没有给出令牌onNewToken

检索令牌的代码:

GlobalScope.launch(context = Dispatchers.IO) {
    try {
        val appId = AGConnectServicesConfig.fromContext(this@MainActivity).getString("client/app_id")
        val token = HmsInstanceId.getInstance(this@MainActivity).getToken(appId, "HCM")
        Pulp.debug("Huawei", "Token received") {
            "token" to token
        }
    } catch (e: java.lang.Exception) {
        Pulp.error("Huawei", "Failed to fetch token", e) {
            "Cause" to (e.message ?: "Empty")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果也不例外。但是令牌是空的(请参阅日志的最后一行)。

中的代码HMSService

override fun onNewToken(token: String?) {
    super.onNewToken(token)
    Pulp.debug("Huawei", "(onNewToken): Huawei messaging …
Run Code Online (Sandbox Code Playgroud)

android huawei-mobile-services huawei-push-notification

7
推荐指数
1
解决办法
1482
查看次数

在 Jetpack compose 中显示 markdown 内容

目前没有用于显示md内容的 jetpack compose 库。

# Header
## H2

` code `
```dsd```
...
Run Code Online (Sandbox Code Playgroud)

如何制作一个可以显示 Markdown 内容的可组合函数?

markdown android android-jetpack-compose

7
推荐指数
1
解决办法
6454
查看次数

Jetpack proto 数据存储 - 使用 Kotlin dsl 进行 gradle 配置

在 jetpack 数据存储中,您必须设置 gradle 插件任务以从.proto文件中生成类:

// build.gradle
protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.10.0"
    }

    // Generates the java Protobuf-lite code for the Protobufs in this project. See
    // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation
    // for more information.
    generateProtoTasks {
        all().each { task ->
            task.builtins {
                java {
                    option 'lite'
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我将Kotlin dsl用于我的 gradle 项目。尝试将其转换为 kotlin dsl 后,option属性未知,我找不到它的替代品 kotlin kts

// build.gradle
protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.10.0"
    }

    // Generates …
Run Code Online (Sandbox Code Playgroud)

android gradle-kotlin-dsl android-jetpack-datastore

7
推荐指数
2
解决办法
558
查看次数

在Unity中使用moshi的ClassNotFoundException

我创建了一个库,使用Square的moshi来处理它的JSON序列化和一些其他库,如RxJava,dagger等.
因为我想在Unity上使用它,我必须从我自己的库中导出AAR并在团结中添加moshi项目.

我使用Unity-jar-resolver工具在项目中添加我的库和依赖项.使用Gradle作为构建系统来制作项目我遇到了一些错误.

错误构建失败.

以下是有关错误的更多详细信息:

错误详情.

这是纯文本:

stderr[
Exception in thread "main" java.lang.IllegalStateException: Couldn't desugar invokedynamic for dagger/shaded/auto/common/GeneratedAnnotationSpecs.apply using java/lang/invoke/LambdaMetafactory.metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (6) with arguments [(Ljava/lang/Object;)Ljava/lang/Object;, com/squareup/javapoet/AnnotationSpec$Builder.build()Lcom/squareup/javapoet/AnnotationSpec; (5), (Lcom/squareup/javapoet/AnnotationSpec$Builder;)Lcom/squareup/javapoet/AnnotationSpec;]
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:467)
    at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(Unknown Source)
    at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(Unknown Source)
    at org.objectweb.asm.ClassReader.a(Unknown Source)
    at org.objectweb.asm.ClassReader.b(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:401)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:326)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:280)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:584)
Caused by: java.lang.ClassNotFoundException: Class com.squareup.javapoet.AnnotationSpec$Builder not found
    at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.google.devtools.build.android.desugar.LambdaDesugaring.loadFromInternal(LambdaDesugaring.java:330)
    at com.google.devtools.build.android.desugar.LambdaDesugaring.access$500(LambdaDesugaring.java:53)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.toMethodHandle(LambdaDesugaring.java:597)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.toJvmMetatype(LambdaDesugaring.java:586)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:401)
    ... 10 …
Run Code Online (Sandbox Code Playgroud)

unity-game-engine gradle moshi

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

Git 情况在 windows bash 和 windows 命令行中有所不同

我的系统中有一个 git 存储库。
当我git status使用windows PowerShell输入时,我得到一个结果,当我在windows bash中输入它时,我得到不同的结果。

请参阅图片了解更多详情。

在此输入图像描述

git status正如您在 Windows PowerShell 中看到的那样Nothing to commit,而在 Windows bash 中同样git status表示您有未暂存的更改。

git version以下是两者的输出结果:
Windows powershell : git version 2.18.0.windows.1
Windows bash : git version 2.7.4

这是git diff .idea/gradle.xml
Powershell
Bash

diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 7ac24c7..15dda04 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="GradleSettings">
-    <option name="linkedExternalProjectsSettings">
- …
Run Code Online (Sandbox Code Playgroud)

git bash windows-subsystem-for-linux

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