android - 自定义 Compose Arrangement 以在 LazyRow/LazyColumn 的开头和结尾添加额外的间距

标签 android android-jetpack-compose jetpack android-jetpack-compose-list

如何为 LazyRow 创建自定义 Arrangement 以在开头和结尾添加额外的间距,但中间的间距均匀?

开始|<更多空间> Item 1 Item 2 Last Item |End

object CustomArrangement : Arrangement.Horizontal {
  override fun Density.arrange(
    totalSize: Int,
    sizes: IntArray,
    layoutDirection: LayoutDirection,
    outPositions: IntArray
  ) {

  }
}

https://developer.android.com/jetpack/compose/lists#custom-arrangements

最佳答案

这不是您问题的答案,但您可以通过添加页眉和页脚项目或使用水平 PaddingValues 来实现相同的效果。

一个简单的LazyRow:

LazyRow(
    horizontalArrangement =   Arrangement.spacedBy(8.dp),
    contentPadding = PaddingValues(horizontal = 50.dp),
    modifier= Modifier.fillMaxSize(),
) {

    items(itemsList) {
        Text("Item is $it")
    }
}

或类似的东西:

LazyRow(
    horizontalArrangement =   Arrangement.spacedBy(8.dp),
    modifier= Modifier.fillMaxSize()
) {
    //Header
    item(){
        Spacer(modifier = Modifier.width(40.dp))
    }
    items(itemsList) {
        Text("Item is $it")
    }
    //Footer
    item(){
        Spacer(modifier = Modifier.width(40.dp))
    }
}

enter image description here

关于android - 自定义 Compose Arrangement 以在 LazyRow/LazyColumn 的开头和结尾添加额外的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74562040/

相关文章:

java - 屏幕锁定时我无法接收通知

button - Jetpack Compose 中缺少波纹效果

android - 无法在我的 Android 项目中设置 Chaquopy,注释问题

php - 功能未显示在 WordPress 子主题中

android - 为什么 ListView 不显示 android 应用程序中的数据数组?

android - 找不到与给定名称 '@style/Theme.AppCompat.Light.DarkActionBar' 匹配的资源

android - 垂直居中 BottomSheet 的内容,无论其状态如何 [完全展开或半展开]

unit-testing - 运行 Postman jetpack 测试以为 Newman 命令

android - Kotlin Realm : Class must declare a public constructor with no arguments if it contains custom constructors

androidx.navigation.NavGraph 无法转换为 androidx.navigation.compose.ComposeNavigator$Destination