簡體   English   中英

將ListView Stick的標題視圖(不是節標題)放在頂部

[英]Make Header View (not Section Header) of ListView Stick on Top

我有一個帶有HeaderView的ListView。

我希望HeaderView中的一個視圖能夠粘在上面。

我已經看到很多關於粘性節標題的例子。

我也查看了StickyScrollViewItems,但由於我使用的是ListView ,我無法使用ScrollView

是否有可用的庫,或者我應該覆蓋ListViewOnScrollListener

謝謝。

我不知道有任何庫允許你這樣做,但我為標題做的是使用RelativeLayout為我的xml將具有ListView 然后根據需要創建標題視圖並為其提供屬性

android:layout_alignParentTop="true"

然后給你的ListView

android:layout_below="@id/idOfHeaderView

這是我所知道的將標題視圖停靠在頂部的最簡單方法。 它每次都對我有用。 我希望這有幫助。

我剛剛編寫了大量代碼來執行此操作,但由於合同原因我無法共享。 基本上遵循此處概述的方法並應用於列表視圖而不是滾動視圖。

要點是

  1. 創建一個包裝器視圖,其中包含浮動/粘性標頭和listview作為兄弟
  2. 使用isSticky布爾值添加標頭時使用代理方法 - 如果是粘滯的,則將相同大小的列表視圖中的假空白標題添加到浮動標題包裝器的預期標題視圖中(在此處使用相對布局)
  3. 設置listview的滾動偵聽器,該偵聽器跟蹤列表中虛擬標題視圖的頂部px位置,並將其設置為位於相對布局內的浮動標題的上邊距
  4. 處理所有惱人的邊緣情況/ OEM反彈時廢話得到它的所有工作situtions(像這樣的三星)

在列出視圖布局后,請記住設置浮動/固定標題的初始位置。

我覺得它有點牽扯並需要一些調整才能做到正確 - 這是我羡慕iOS的時候,任何iOS開發人員都會認為你需要一段時間才能實現松弛:D

在編寫本文時,所有Open libs都使用滾動視圖或列表視圖標題。 這些方法的問題在於列表視圖循環視圖(因此不像滾動視圖那樣只能保留對虛擬視圖的引用),並且當前的庫似乎使用適配器getView方法等重復粘貼視圖 - 這對於動態列表視圖標題視圖,因為它們不被回收,只能有一個父級,所以重新定位會很煩人(在我的情況下有很多功能,所以我不想創建兩個相同類型的視圖,並且當前的libs)適合我的解決方案)

暫無
暫無

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

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