小编2ja*_*222的帖子

在 Jetpack @Compose 函数中使用 LiveData 作为状态

我想LiveData<List<DataClass>>在 @Composable 函数中使用 a作为我的状态源。

我不能使用新的 @Model 注释,我在这个演讲中看到链接(在 32:06)可以通过调用函数来使用 LiveData、Flow 等+observe(/* Data */)

问题:我找不到视频中使用的函数 (+observe()) 或任何其他使用 LiveData 作为来源的方法。如何在 @Compose 函数中使用 LiveData?

项目摇篮:

buildscript {
    ext.kotlin_version = '1.3.60-eap-76'
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0-alpha04'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序gradle:依赖项:

   def lifecycle_version = "2.1.0"
   def compose_version = "0.1.0-dev02"

    // ViewModel and LiveData
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
    kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
    androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"

    implementation "androidx.compose:compose-runtime:$compose_version"
    kapt "androidx.compose:compose-compiler:$compose_version"

    // Android Compose
    implementation "androidx.ui:ui-layout:$compose_version"
    implementation "androidx.ui:ui-foundation:$compose_version" …
Run Code Online (Sandbox Code Playgroud)

android android-livedata android-jetpack android-jetpack-compose

11
推荐指数
4
解决办法
7354
查看次数

请求在 jetpack compose 中关注 TextField

如何在 jetpack compose 中自动关注文本字段。当我单击文本字段并开始在其上键入时。同时,当我单击后退按钮时,然后当我尝试单击文本字段时,没有任何反应。

val textState = remember { mutableStateOf(TextFieldValue()) }
TextField(
    modifier = Modifier.fillMaxWidth(),
    value = textState.value,
    onValueChange = { value : TextFieldValue ->
        textState.value = value
    }
)
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose

7
推荐指数
6
解决办法
4368
查看次数

在 Jetpack Compose 中更改光标位置并强制 TextField 为单行

无法找到更改 TextField 的光标位置并使其成为单行的方法。有人找到办法了吗?

此时我使用的是最新jetpack-compose 1.0.0-alpha03版本。

android textfield kotlin android-jetpack-compose

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

在 DrawScope 中绘制文本 - Jetpack Compose Desktop

我想在画布内绘制文本以显示图表的标签。

在 Android 上,我可以使用该库: https: //github.com/tehras/charts(对于 Compose:1-alpha03),但在桌面上我不能。

因此我尝试重写损坏的部分。但我无法显示标签。

原始代码,我尝试更改以与桌面一起使用:

    private val textPaint = android.graphics.Paint().apply {
        isAntiAlias = true
        color = labelTextColor.toLegacyInt()
    }
    private val textBounds = android.graphics.Rect()

    override fun drawAxisLabels(
        drawScope: DrawScope,
        canvas: Canvas,
        drawableArea: Rect,
        minValue: Float,
        maxValue: Float
    ) = with(drawScope) {
        val labelPaint = textPaint.apply {
            textSize = labelTextSize.toPx()
            textAlign = android.graphics.Paint.Align.RIGHT
        }
        val minLabelHeight = (labelTextSize.toPx() * labelRatio.toFloat())
        val totalHeight = drawableArea.height
        val labelCount = max((drawableArea.height / minLabelHeight).roundToInt(), 2)

        for (i in 0..labelCount) …
Run Code Online (Sandbox Code Playgroud)

skia android-jetpack-compose compose-desktop

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