旧版本的 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)移动到一个区域的中心?
我正在尝试新的喷气背包库“ compose-navigation ”。
根据docs,要导航到路线,我应该使用navigate()采用String 的方法。
navController = rememberNavController()
// navigate
navController.navigate("/another_route")
Run Code Online (Sandbox Code Playgroud)
但是,不存在这样的方法, navigate(String)并且出现编译错误。
我错过了什么?
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) 是否可以在没有初始化的情况下初始化 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
例如:
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 协程?
我最近在华为手机上试用了我的应用程序。
问题是 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) 目前没有用于显示md内容的 jetpack compose 库。
# Header
## H2
` code `
```dsd```
...
Run Code Online (Sandbox Code Playgroud)
如何制作一个可以显示 Markdown 内容的可组合函数?
在 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) 我创建了一个库,使用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) 我的系统中有一个 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)