如何为LazyRow创建自定义Arrangement,以便在开头和结尾添加额外的间距,但两者之间的间距相等?

开始|<更多空间&>第一项第二项最后一项|结束

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相关问答推荐

如何使用喷气背包压缩让Animated Image Vector每次动画化一条路径?

Android开发:主题排版不适用于按钮文本

无法在Jetpack Compose中显示Admob原生广告

如何在Jetpack Compose中使用Box Composable来实现这种布局?

为什么当我在装有Firebase的安卓系统中登录苹果时,收到的邮箱为空?

如何修复Google Play市场中有关已删除广告库的错误消息?

如何在Jetpack Compose中创建这个圆形?

使用 JNI 从 Android 应用程序中使用 Kotlin/Native 预构建共享库

解决失败:Landroidx/compose/runtime/PrimitiveSnapshotStateKt

使用 Gadle kotlin 为多模块 Android 代码库设置 jacoco

是否可以在 Android 应用程序的 Wifi 设置中为 DNS 服务器设置自定义 IP?

如何删除房间数据库?

我可以从 Android 中的选定文本中获取周围的文本吗?

java.lang.ExceptionInInitializerError -- 原因:java.lang.NullPointerException

如何像 XML 一样在 Compose Android Studio 中折叠/展开小部件代码区域/区域

Jetpack Compose 部分或开放侧边框

错误:构建 react-native 应用程序时包 com.facebook.react.bridge 不存在

Android Jetpack Compose - 找不到 R.drawable?

单击登录按钮后从应用程序中退出

操作系统会终止已启动的服务并调用Service.onDestroy吗?