小编Sea*_*ean的帖子

在 Jetpack Compose 中设置焦点顺序的最简单方法是什么?

我有一列 TextFields,类似于:

Column {
    TextField(
        value = ...,
        onValueChange = { ... },
        keyboardOptions = KeyboardOptions(imeAction = ImeAction.next),
    )
    TextField(
        value = ...,
        onValueChange = { ... },
        keyboardOptions = KeyboardOptions(imeAction = ImeAction.next),
    )
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我希望当用户按 Tab 或键盘上的下一个按钮时,每个 TextField 上的焦点移动到下一个。当前按 Tab 键会在 TextField 中插入一个选项卡。按下一步按钮不会执行任何操作。我可以为每个 TextField 创建一个 FocusRequester 并设置 KeyboardActions onNext 以请求将焦点放在每个 TextField 的下一个字段上。这有点乏味,而且它没有解决 Tab 行为。

android android-jetpack-compose android-jetpack-compose-text

24
推荐指数
4
解决办法
2万
查看次数

是否可以指定体重和最小高度?

我试图拥有一个高度至少为 160 dp 的元素,但会缩放以在可能的情况下使用所有可用空间。我想,也许这比我想象的要困难。

以下内容不起作用,但也许它传达了我想做的事情的想法。

Column(modifier = Modifier.verticalScroll(rememberScrollState()).fillMaxSize) {
    Box(modifier = Modifier.weight(1f).sizeIn(minHeight = 160.dp))
    Box(modifier = Modifier.height(600.dp))
}
Run Code Online (Sandbox Code Playgroud)

当内容不适合屏幕时,我希望内容可以滚动,并且第一个框的高度为 160 dp。如果屏幕超过 760 dp,我希望第一个框填充尽可能多的空间,而不需要滚动。

android android-jetpack-compose

12
推荐指数
1
解决办法
2319
查看次数

如何格式化 kotlinx-datetime LocalDateTime?

我正在将一些代码从使用 Java 8 转换LocalDatetime为使用该版本kotlinx-datetime,但我找不到任何格式化方法。具体来说,我正在替换FormatStyle.MEDIUM. 它们不存在并且我需要编写格式吗?

这是针对 Android 应用程序的。有没有我可以使用的 Android 特定库?或者我可以使用 Java 8 之前的方法来保持对旧版本 Android 的支持吗?

编辑(我的解决方案基于 Arvind 的答案)

fun Instant.toDateTimeString(formatStyle: FormatStyle = FormatStyle.MEDIUM): String {
    val localDatetime = toLocalDateTime(TimeZone.currentSystemDefault())
    val formatter = DateTimeFormatter.ofLocalizedDateTime(formatStyle)
    return formatter.format(localDatetime.toJavaLocalDateTime())
}
Run Code Online (Sandbox Code Playgroud)

android kotlin localdatetime kotlinx-datetime

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

为什么 Jetpack Compose 不将按钮中的文本大写?

文档似乎认为按钮应该全部大写https://developer.android.com/reference/kotlin/androidx/compose/material/Typography#button但实际上并非如此。(使用 1.0.0-beta01)

如何更改我的主题以使按钮文本大写?

android android-jetpack-compose

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

如何使用 Jetpack Compose Navigation 处理弹出多个屏幕

我会尝试做一些 ASCII 艺术来描述这个问题:

       <--------------------------------------\
DestinationA --> DestinationC ---------> DestinationE
DestinationB ------/    \-----> DestinationD --/
Run Code Online (Sandbox Code Playgroud)

我希望这是可以解读的。可以从目的地 A 和 B 到达 C。可以从 C 和 D 到达 E。E 返回到 A 或 B(以返回堆栈中的为准)。目的地 C、D 和 E 采用参数 (id)。

实现这一点的最佳方法是什么?使用嵌套导航图看起来是可能的。

以下内容有效,但感觉更像是一种解决方法,而不是导航组件的预期工作方式。

       <--------------------------------------\
DestinationA --> DestinationC ---------> DestinationE
DestinationB ------/    \-----> DestinationD --/
Run Code Online (Sandbox Code Playgroud)

NavHost 目前的使用情况是:

val destination = navController.getBackStackEntry("DestinationC/{id}").destination
navController.popBackStack(destination.id, true)
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-navigation android-jetpack-compose

5
推荐指数
2
解决办法
5358
查看次数

是否有适用于PHP的iCalendar文件的现有解析器?

我一直在为PHP搜索iCalendar解析器,但一直无法找到完整的解析器.qCal似乎并不完整.Bennu似乎更不如此.我见过很多人想要一个,但没有其他的.

php icalendar

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