我已經制作了一個 LazyRow,我現在希望能夠從中獲取滾動位置。我所理解的 Scrollablerow 已被棄用。(如果我錯了,請糾正我)問題是我不能制作一個可滾動的行,所以我想讓我們做一個懶惰的。但我不知道如何從lazyrow 獲取滾動位置。如果那個 eaven 存在,我知道如何獲取索引但不知道位置。這是我嘗試過的。
val scrollState = rememberScrollState()
LazyRow(scrollState = scrollstate){
}
uj5u.com熱心網友回復:
對于Lazy
滾動條,有單獨的狀態Lazy
。
我認為實際上只有一個,即rememberLazyListState()
將其作為滾動狀態傳遞給行,然后您可以訪問各種資訊。例如,您可以獲得第一個可見專案的索引,以及它的偏移量。在上述初始化回傳的物件中有這些東西的直接屬性。您還可以使用獲得的lazyListState.layoutInfo
屬性執行一些更復雜的操作。
此外,ScrollableRow
可能不推薦使用 a @Composable
,但它只是重構了一下。現在,您可以使用horozontalScroll()
和verticalScroll()
修飾符,它們都接受一個scrollState
引數,該引數需要與您在問題中創建的物件相同的物件。
通常,您會使用Lazy
Scrollers,因為它們不難實作并且性能也非常出色,但總體思路是它們用于大型資料集,而非惰性滾動器適用于小型串列和內容。這是因為懶惰的只快取了整個串列的一小部分,使您的 UI 表現出色,這不是常規滾動條所做的事情,對于小型資料集也不是問題。
它們就像系統中RecyclerView
的等價物View
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/469391.html
下一篇:物體框架中的連接字串