我希望文本利用完整的行空间,并在单词溢出行空间时换行.有没有办法在Jetpack compose 文本中实现这一点?我在这里没有找到任何解决办法

预期:

enter image description here

Current: enter image description here

代码:

class MainActivity : ComponentActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
    
            setContent {
                MaterialTheme {
                    Surface(
                        modifier = Modifier.fillMaxSize(),
                        color = MaterialTheme.colors.background
                    ) {
                        ShowText()
                    }
                }
            }
        }
    }
    
    @Composable
    fun ShowText() {
        Text(text = "This is a veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerrrrryyyyyyyyyyyy looooooong text", softWrap = true)
    }
    
    @Preview
    @Composable
    fun Preview() {
        MaterialTheme {
            Surface(
                modifier = Modifier.fillMaxSize(),
                color = MaterialTheme.colors.background
            ) {
                ShowText()
            }
    
        }
    }

推荐答案

一种解决方案是用不可 destruct 的空间取代空间:

@Composable
fun TestLongWord() {
    Box(
        Modifier
            .fillMaxSize()
            .systemBarsPadding()) {
        Text(
            text = "This is a veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerrrrryyyyyyyyyyyyyyyyyyy looooooong text".useNonBreakingSpace()
        )
    }
}

fun String?.useNonBreakingSpace() = this.orEmpty()
    .replace(
        Constants.REGULAR_SPACE_CHARACTER,
        Constants.NON_BREAKABLE_SPACE_UNICODE
    )

object Constants {
    const val REGULAR_SPACE_CHARACTER = ' '
    const val NON_BREAKABLE_SPACE_UNICODE = '\u00A0'
}

结果是:

Result

来源herehere

Android相关问答推荐

无法列出目录中的文件'

当我在Android上运行应用程序时,组件会随机调整大小和移动

原因平滑滚动的滞后懒惰列在android jetpack compose

泛型类型lambda函数参数作为函数参数

如何将我的Android应用程序(Kotlin)中的图像分享给其他应用程序?

react 本机生成失败,出现异常.错误:无法确定';<;宏/>;的类型

Android-LVL库始终返回NOT_SUBLISTED

判断文本视图是否为单行

如何在卡片视图右侧添加箭头

减少Compose中可滚动选项卡之间的间距

如何避免多次调用 Jetpack Compose 的 onClick 回调

Android Jetpack Compose 电视焦点恢复

如何仅同步 local_manifest.xml?

Compose 状态不是 recomposing

在模块 jetified-kotlin-stdlib-1.8.10 中发现重复的类 kotlin.random.jdk8,带有启动基准

如何从包装在泛型中的 retrofit 调用中检索密钥?

如何在 React Native 中调试网络响应

Kotlin Compose forEach 中的负间距

Jetpack Compose Material3 - switch 标签

如何使在库范围之外无法访问的接口的具体实现.?