私は HeaderView を持つ ListView を持っています。
のビューの 1 つをHeaderView
一番上に固定したい。
スティッキー セクション ヘッダーの例をたくさん見てきました。
StickyScrollViewItemsも見ましたが、 を使用しているListView
ため、ScrollView
.
OnScrollListener
これに利用できるライブラリはありますか、それとも単にオーバーライドする必要がありますListView
か?
ありがとう。
私は HeaderView を持つ ListView を持っています。
のビューの 1 つをHeaderView
一番上に固定したい。
スティッキー セクション ヘッダーの例をたくさん見てきました。
StickyScrollViewItemsも見ましたが、 を使用しているListView
ため、ScrollView
.
OnScrollListener
これに利用できるライブラリはありますか、それとも単にオーバーライドする必要がありますListView
か?
ありがとう。
これを行う大量のコードを書きましたが、契約上の理由で共有できません。基本的に、ここで概説したアプローチに従い、スクロール ビューではなくリストビューに適用します。
主なポイントは
リストビューがレイアウトされた後、フローティング/固定ヘッダーの初期位置を設定することを忘れないでください。
私はそれが少し複雑だと感じており、正しくなるには微調整が必要です-これは私がiOSをうらやましく思う時期であり、iOS開発者は実装に時間がかかるため、あなたの怠慢を考えるでしょう:D
執筆時点で公開されているすべての Open ライブラリは、スクロール ビューまたはリスト ビュー ヘッダーを使用しています。これらのアプローチのこの問題は、リストビューがビューをリサイクルすることです (スクロールビューとは異なり、ダミービューへの参照を保持することはできません)。また、現在のライブラリはアダプターgetView
メソッドなどを使用してスティッキービューを複製しているように見えます-これは動的には適していませんリスト ビュー ヘッダー ビューはリサイクルされず、親を 1 つしか持てないため、親を変更するのは面倒です (私の場合、多くの機能があるため、同じタイプの 2 つのビューを作成したくないため、現在のライブラリを押し込みます)。私のソリューションに適合します)
これを可能にするライブラリは知りませんが、ヘッダーに対して行うことはRelativeLayout
、.xml を持つ .xml にを使用することListView
です。次に、必要に応じてヘッダービューを作成し、プロパティを指定します
android:layout_alignParentTop="true"
それからあなたのListView
android:layout_below="@id/idOfHeaderView
これは、私が知っているヘッダー ビューを一番上にドッキングする最も簡単な方法です。それは毎回私のために働いています。これが役立つことを願っています。