2012-02-13 20 views
4

AndroidはデフォルトでListViewのセクションヘッダーをサポートしていません。私の研究に基づいて、ListViewにセクションヘッダーを実装する2つの方法があることを知りました。最初の方法は、リストビューでセパレータビューとコンテンツビューの2種類のビューをサポートすることです。 2番目の方法は、すべてのコンテンツビューにセパレータビューを含め、セパレータビューの可視性をVISIBLEまたはGONEに設定することです。私は2番目の方法を使用しています。ListViewでセクションヘッダーを作成するにはどうすればいいですか?

ただし、ListViewを上にスクロールすると、セクションヘッダーもスクロールアップされます。私はこれが正常であることを知っている。しかし、セクションに属するいくつかのデータがまだ表示されている限り、セクションヘッダーが一番上に残るようにしたい。達成したい動作は、iOSのUITableViewのセクションヘッダーの動作に似ています。どうすればこれを達成できますか?

また、ここでは、ListViewの上にビューを作成し、必要に応じて変更することをお勧めします。ただし、これはすべての携帯電話では機能しません。たとえば、サムスンの携帯電話のリストビューはバウンスしています。 ListViewの上にあるビューをヘッダーとして動作させ、ListViewがバウンスすると、ダミーヘッダービューはListViewと共にバウンドしません。また、デフォルトのListViewの上部は、ListViewがスクロールされているときに光るため、簡単に検出できます。それはまだ自然に見えることを確認しながら言った効果を達成するためにとにかくありますか?

下の写真は、私はちょうどリストビューの上のTextViewを追加した場合、私が遭遇される問題を示しています(サムスンギャラクシーS2から撮影)

enter image description here

+0

それが動作文句を言わない理由を得るのだろうか?たとえば、あなたが設定した垂直方向の線形レイアウトがあるだけです。最初のビューとしてのTextViewヘッダーとその2番目のビューとしてのListView。これはスクロールの問題を解決するはずです。 –

+0

@SergeyBenner:一部の電話機(たとえば、samsung)でリストビューを下方向にオーバービューすると、リストビューの最上部のギャップと元の位置が表示されるため、機能しません。私が言及している振る舞いを示すためにイメージを追加しました。 – Arci

答えて

0

は、このXML +記号で表示されます静的Uはいくつかの助け

    <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
    android:id="@+id/linearlayout"> 
<LinearLayout 
    android:id="@+id/linearLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="#00ffff"> 
    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/plus" /> 
</LinearLayout> 
<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
    </LinearLayout> 
</ScrollView> 

+0

画像を見るhttp://postimage.org/image/gr8ggl71j/ –

+0

ありがとう!しかし、ScrolLViewでonScrollイベントをどのようにキャッチしますか?そして、ScrollViewに表示されている一番上の項目をどのように知っていますか?私はAPI 8を使用しています。 – Arci

関連する問題