Closed10

daily_20230403

maxfie1dmaxfie1d

公式でも紹介されている Arrangement.Vertical をカスタムするやつをやってみた。
すべてのアイテムが表示範囲内に入るかどうかで挙動が変わるらしい。
spacing: Dp はアイテム間にスペースを入れるためのもの。

https://gist.github.com/maxfie1d/70a5713bc74e2fa2cb5e0c76375b4060


https://developer.android.com/jetpack/compose/lists?hl=ja#custom-arrangements

object TopWithFooter : Arrangement.Vertical {
    override fun Density.arrange(
        totalSize: Int,
        sizes: IntArray,
        outPositions: IntArray
    ) {
        var y = 0
        sizes.forEachIndexed { index, size ->
            outPositions[index] = y
            y += size
        }
        if (y < totalSize) {
            val lastIndex =
                outPositions.lastIndex
            outPositions[lastIndex] =
                totalSize - sizes.last()
        }
    }
}
maxfie1dmaxfie1d
  • LazyVerticalGrid は縦に2つ並べて使えない
    • modifier で height を渡せば並べられなくはない
  • アイテム数が固定で高さが決まっているグリッドを実現する custom layout を実装する方法がある
このスクラップは2023/04/05にクローズされました