为什么LazyColumn的滚动超级慢?

问题描述 投票:0回答:1

速度太慢了,几乎无法使用。除非

outerLists
大小约为 2

,否则发布版本不会有太大区别

尝试过:我的搜索没有产生任何我能理解的内容。我尝试寻找重组问题,但似乎无法在

LazyColumn
块内找到任何内容。

预期:像其他应用程序一样正常的垂直滚动,或者应该与此应用程序的水平滚动感觉相同。

// Use mutableStateListOf         
var data =  mutableStateListOf<List<CellData>>().apply { 
    // Initialize with some sample data (20 rows, 10 columns)         
    addAll(
        List(100) { outerIndex ->                 
            List(100) { innerIndex ->                     
                val value = "Value ${outerIndex \* 10 + innerIndex + 1}"                                 
                CellData(value)
            }
        }
    )
}

fun Grid(data: List<List<CellData>>) {     
    LazyColumn(
        modifier = Modifier.fillMaxSize()     
        //.horizontalScroll(rememberScrollState())                 
    ) {         
        itemsIndexed(data) { Outerindex:Int, row ->             
                Row(
                    modifier = Modifier.fillMaxWidth()                    
                ) {                 
                    row.forEachIndexed {Innerindex: Int,  cell ->                                    

                        ExcelCell(cell, Outerindex, Innerindex )                 
                    }             
                }             
                Spacer(modifier = Modifier.height(8.dp))         
         }     
    } 
}

我观察到,如果我禁用 HorizontalScrolling,verticalScrolling 会改善很多,变得有些可用,但在这种情况下,可以看到这个奇怪的事情 - 即将进入视口的新元素行被击中屏幕底部,滚动速度变得不均匀,然后再次恢复正常滚动速度,直到另一行新元素即将进入视口。

或者用另一个术语来描述它,在新的一行元素进入屏幕之前,感觉就像在进入屏幕之前的这行元素发生了一些事情,从而导致了轻微的延迟,因此由于这种突然的情况,滚动速度降低得太快,并且出现“颠簸/撞击”的视觉和感觉。

android scroll android-jetpack-compose android-jetpack-compose-lazy-column
1个回答
0
投票

我相信,如果你让你的游戏没有任何滚动,并让你的游戏成为 3 人游戏,玩家必须点击一些东西才能与他们互动,当这确实让游戏对环境产生新的危害时。这是我认为你可以做的。如果你有任何想法请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.