小编Abh*_*bhi的帖子

在 composeview 中使用 compose 时如何获取重组计数?

我在撰写视图中使用撰写功能。如何在布局检查器中获取重组计数(未详细显示)?

在 XML 的撰写视图中使用撰写函数时如何获取布局三和重组计数?

layout android android-jetpack-compose

5
推荐指数
0
解决办法
117
查看次数

Firebase 云函数本地代码更改未反映在模拟器中

我正在尝试使用 Firebase 云函数为我的应用程序开发 API。
网站使用火力仿真器套件的开发和本地测试。

问题:更改未反映在本地模拟功能中。

脚步:

  1. 索引.js:

    exports.test = functions.https.onRequest(async (request, response) => {
       response.status(200).send("First");
    });
    
    Run Code Online (Sandbox Code Playgroud)
  2. 成功部署了该test方法。

    firebase deploy --only functions:test
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在 Postman 中提出了以下 GET 请求。

     https://us-central1-<project-name>.cloudfunctions.net/test
    
    Run Code Online (Sandbox Code Playgroud)

    结果:第一个
    状态:200 OK

  4. 启动模拟器:

    firebase emulators:start --only functions
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在 Postman 中提出了以下 GET 请求。

     http://localhost:5001/<project-name>/us-central1/indexTest
    
    Run Code Online (Sandbox Code Playgroud)

    结果:第一个
    状态:200 OK
    与实际部署的功能相同。

  6. 将功能代码更改为:

    exports.test = functions.https.onRequest(async (request, response) => {
        response.status(200).send("Second");
    });
    
    Run Code Online (Sandbox Code Playgroud)
  7. 在本地主机中点击模拟函数时获得与以前相同的结果。未反映更改。

此外,尝试停止模拟器并重新启动它。没运气。

node.js firebase firebase-tools google-cloud-functions

4
推荐指数
1
解决办法
584
查看次数

为什么 toPx() 不能在 Jetpack Compose 的 Canvas 之外工作?

在下面的代码中,toPx()可以在 中工作Canvas,但不能在Surface.
为什么?

Canvas(modifier = Modifier.size(16.dp)) {
    val textPaint = Paint().asFrameworkPaint().apply {
        textSize = 32.dp.toPx()
    }
}

Surface(modifier = Modifier.size(16.dp)) {
    val textPaint = Paint().asFrameworkPaint().apply {
        textSize = 32.dp.toPx() // Error `toPx()`
    }
}    
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

4
推荐指数
1
解决办法
874
查看次数

如何在 Jetpack compose 中隐藏 TextField/BasicTextField 的 TextFieldCursorHandle?

到目前为止我的解决方案是使用Transparent光标的颜色。
我正在寻找更好的方法来隐藏它(如果有的话)。

cursorBrush = SolidColor(Transparent)
Run Code Online (Sandbox Code Playgroud)

TextField 应该获得焦点,键盘应该打开并且用户应该能够键入输入。

截屏

问题是TextFieldCursorHandle输入文本后我仍然可以看到。

在此输入图像描述

android android-jetpack-compose android-compose-textfield

4
推荐指数
1
解决办法
2066
查看次数

如何在 Jetpack compose 中将画布中的文本居中?

我正在使用 Canvas 在 Jetpack Compose 中创建自定义可组合项。
使用时如何让文字居中drawText

代码

@OptIn(ExperimentalTextApi::class)
@Composable
fun MyCenterTextInCanvas() {
    val width: Dp = 200.dp
    val height: Dp = 40.dp
    val textMeasurer = rememberTextMeasurer()
    Canvas(
        modifier = Modifier
            .background(Color.LightGray)
            .wrapContentSize(
                align = Alignment.Center,
            )
            .requiredSize(
                width = width,
                height = height,
            ),
    ) {
        drawText(
            textMeasurer = textMeasurer,
            text = "Sample Text",
            topLeft = Offset(
                x = (width / 2).toPx(),
                y = (height / 2).toPx(),
            ),
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

撰写版本
jetpackComposeVersion = "1.3.0-alpha02"

用户界面

在此输入图像描述

android android-jetpack-compose android-jetpack-compose-canvas

4
推荐指数
1
解决办法
3291
查看次数

如何正确从资源中获取Color(JetpackCompose)?

我需要使用资源来支持不同的颜色BuildVars,所以我有Color.kt定义颜色的文件,问题是如果我从colors.xml这样的资源中获取颜色

val MyWhiteColor: Color = Color(R.color.my_white_color)
Run Code Online (Sandbox Code Playgroud)

并像这样使用它

    Text(
        text = ...,
        style = TextStyle(
            color = MyWhiteColor
        )
    )
Run Code Online (Sandbox Code Playgroud)

但是,如果我将实现更改为,我会得到蓝色而不是白色

val MyWhiteColor: Color = Color(android.graphics.Color.parseColor("#FFFFFF"))
Run Code Online (Sandbox Code Playgroud)

它按预期工作,我得到白色。

我缺少什么?colors.xml为什么当我从颜色中获取值时会转换为蓝色?

android-jetpack android-jetpack-compose android-compose-textfield

4
推荐指数
1
解决办法
3691
查看次数

Jetpack Compose 中的 View.GONE 替代品?

我将举一个问题的例子,假设我在框中有两个按钮

@Preview
@Composable
fun testView() {
    Box(modifier = Modifier
        .size(200.dp)
    ) {
        Button(onClick = {
            Log.e("HERE", "First btn")
        }) {
            Text(text = "Btn1")
        }

        Button(modifier = Modifier
            onClick = {
            Log.e("HERE", "Second btn")
        }) {
            Text(text = "Btn2")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我会看到Btn2(实际上位于顶部Btn1),当我单击日志时,我会看到Second btn预期的结果。

假设我需要隐藏Btn2以便用户可以单击Btn1,为了以旧的方式执行此操作,我会添加View.GONE并且它会起作用,但是在 JetpackCompose 中(据我所知)只有一个alpha选项,所以我尝试将其设置为0f像这样

...
Button(modifier = Modifier
            .alpha(0f),
            onClick = {
            Log.e("HERE", "Second btn")
        }) {
            Text(text = "Btn2")
        }
... …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack android-jetpack-compose

4
推荐指数
1
解决办法
2050
查看次数

如何使用 Jetpack Glance 将互联网上的图像加载到小部件中?

我有一个使用 Jetpack Compose 和 Jetpack Glance 库开发的小部件,该小部件是一个 LazyColumn 列表,我在向 Room Database 数据库进行查询后在其中传递信息。

在此输入图像描述

为了尝试加载图像,我将Image()提供程序一起使用,并向其传递一个字符串(这是我要加载的图像的 url)

Image(
   modifier = GlanceModifier.size(50.dp),
   provider = ImageProvider(item.image),
   contentDescription = null
)
Run Code Online (Sandbox Code Playgroud)

这没有加载图像,我尝试将该图像 url 传递给位图,以使用 BitmapImageProvider() 加载它,但它不起作用。有没有办法使用 Jetpack Glance 将远程图像加载到小部件?

android kotlin android-jetpack-compose glance-appwidget

4
推荐指数
1
解决办法
1581
查看次数

Firestore:按对象属性查询文档

Firebase Firestore使用对象的属性从文档中查询。

我的数据结构:

document{  
  id:"document-id",
  user: {
    name:"John",
    email:"example@gmail.com"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何从我想要包含“example@gmail.com”作为用户电子邮件地址的文档的集合中进行查询。

注意:
这个问题与这个问题类似: Firestore: Querydocuments by property of object
但是,这个问题是针对后端(节点)的,而这个问题是针对前端(java)的。

android google-cloud-firestore

3
推荐指数
1
解决办法
2029
查看次数

Firestore:在类上找不到要序列化的属性

笔记:

请不要将此问题标记为重复,因为我已经浏览过类似的问题及其答案。

错误 :

java.lang.RuntimeException:在 com.google.firebase.firestore.gl$a 的类 com.appz.abhi.shudhbatter.bc 上找不到要序列化的属性。
(来源未知)
在 com.google.firebase.firestore.gla(未知来源)
在 com.google.firebase.firestore.glb(未知来源)
在 com.google.firebase.firestore.glb(未知来源)
在 com.google.firebase.firestore.gla(未知来源)
在 com.google。 firebase.firestore.ah.b(未知来源)
位于 com.google.firebase.firestore.ba(未知来源)
位于 com.appz.abhi.shudhbatter.view.onboarding.aaaa(未知来源)
位于 com.appz.abhi。 shudhbatter.view.onboarding.aaalambda$56b6vrtW7GJri_HgEDiOk1aRbrY(来源不明)
在 com.appz.abhi.shudhbatter.view.onboarding.aa-$$Lambda$a$56b6vrtW7GJri_HgEDiOk1aRbrY.onClick(lambda)
在 android.view.View.performClick(View .java:5647)
在 android.view.View$PerformClick.run(View.java:22465)
在 android.os.Handler.handleCallback(Handler.java:754)
在 android.os.Handler.dispatchMessage(Handler.java: 95)
在 android.os.Looper.loop(Looper.java:163)
在 android.app.ActivityThread.main(ActivityThread.java:6238)
在 java.lang.reflect.Method.invoke(Native Method)
在 com.android .internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

类似问题:

  1. Firebase 在类上找不到要序列化的属性
  2. 在类 com.contentful.vault.Asset 上找不到要序列化的属性
  3. Firebase 在发布模式下找不到要序列化的对象的属性
  4. Firebase - 在类上找不到要序列化的属性

proguard-rules.pro:

-assumenosideeffects class android.util.Log {
    public static *** d(...);
}

# Add this global rule
-keepattributes Signature …
Run Code Online (Sandbox Code Playgroud)

android android-proguard

3
推荐指数
1
解决办法
2836
查看次数