在撰写中自动滚动多行文本字段

Ann*_*non 8 android android-jetpack-compose

我有一个多行文本字段,如下所示

val scrollState = rememberScrollState(0)

TextField(
    modifier = Modifier
        .fillMaxWidth()
        .height(75.dp)
        .verticalScroll(scrollState),
    value = caption,
    onValueChange = { onCaptionChanged(it) }
)
Run Code Online (Sandbox Code Playgroud)

目前,它支持手动滚动,但我希望它在用户输入新行(\n)时自动向下滚动。我怎样才能做到这一点?

Phi*_*hov 7

您可以使用 滚动scrollState.scrollTo。要跟踪内容高度变化,您可以检查scrollState.maxValue,例如如下所示:

LaunchedEffect(scrollState.maxValue) {
    scrollState.scrollTo(scrollState.maxValue)
    // or 
    // scrollState.animateScrollTo(scrollState.maxValue)
}
Run Code Online (Sandbox Code Playgroud)