簡體   English   中英

在 recylerview android 中以編程方式更改布局管理器

[英]Change layout Manager programatically in recylerview android

我想在視圖膨脹時更改layoutmanager stackFromEndreverseLayout更改。 我嵌套了 recylerview。 因此,當 recylerview 膨脹時,我需要檢查 recylerview 是否有比單個屏幕更多的項目,即我有多個項目要滾動。 我將在圖像中顯示。

在此處輸入圖片說明

當項目從底部邊緣切半時的其他情況。

在此處輸入圖片說明 .

在此基礎上,我想更改布局。 有可能嗎? 我嘗試了一些堆棧溢出示例,但它不起作用。 所以有人知道如何實現那件事嗎?

所以我想知道是否有任何偵聽器在RecyclerView第一次完成放置其項目時調用,從而可以設置布局管理器。

我假設您有一個用於回收器視圖的父視圖,例如NestedScrollView 然后,您需要在屏幕中創建NestedScrollView后獲取它的高度

var nestedScrollViewHeight = 0
yourNestedScrollView.viewTreeObserver.addOnGlobalLayoutListener(
            object : ViewTreeObserver.OnGlobalLayoutListener {
                override fun onGlobalLayout() {
                    yourNestedScrollView.viewTreeObserver.removeOnGlobalLayoutListener(this)
                    nestedScrollViewHeight = yourNestedScrollView.height
                }
            }
        )

然后你可以檢查這個NestedScrollView高度是否超過你的屏幕高度,你可以在 Activity 中使用windowManager獲取你的屏幕高度

val screenHeight = windowManager.currentWindowMetrics.bounds.height()

因此,在獲得screenHeightnestedScrollViewHeight您可以減去以檢查nestedScrollViewHeight是否大於screenHeight

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM