it-swarm-id.com

Android ListView dengan header dan footer tetap

Bagaimana saya bisa membuat ListView dengan header dan footer tetap? 

Saya tidak ingin header/footer untuk menggulir dengan item di ListView

Apakah mungkin header/footer melayang di atas ListView sehingga header/footer tidak perlu memiliki latar belakang/bawah atas yang lurus dan item ListView akan menggulir di bawah latar belakang tampilan header/footer, tetapi masih menunjukkan elemen pertama daftar?

11
Goran

Saya menyelesaikannya dengan menggunakan saran @blackbelt dan ImageView kecil dengan gambar sumber transparan dengan latar belakang ubin.

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:gravity="center"
Android:orientation="vertical" >

<ListView
Android:id="@+id/lv"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
  Android:layout_above="@+id/tv_footer"
Android:layout_below="@+id/tv_header" />

<TextView
Android:id="@+id/tv_footer"
Android:layout_width="fill_parent"
Android:layout_height="40dp"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
Android:background="@drawable/footer_bg"
Android:gravity="center"
Android:text="Footer" />

<TextView
Android:id="@+id/tv_header"
Android:layout_width="fill_parent"
Android:layout_height="40dp"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
Android:background="@drawable/header_bg"
Android:gravity="center"
Android:orientation="vertical"
Android:text="Header" />

<ImageView
Android:id="@+id/iconView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:src="@drawable/ic_launcher" />

<ImageView
Android:id="@+id/imageView2"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignTop="@+id/lv"
Android:background="@drawable/header_bg2"
Android:src="@drawable/transparant_bg_tile" />

<ImageView
Android:id="@+id/imageView1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_above="@+id/tv_footer"
Android:layout_alignParentRight="true"
Android:background="@drawable/footer_bg2"
Android:src="@drawable/transparant_bg_tile" />

</RelativeLayout>

Tangkapan layar dari perangkat enter image description here

14
Goran

http://developer.Android.com/reference/Android/widget/ListView.html#addHeaderView%28Android.view.View%29 . Periksa ini untuk addHeaderView (param).

http://developer.Android.com/reference/Android/widget/ListView.html#addFooterView%28Android.view.View%29 . Periksa ini untuk addFooterView (param).

Contoh metode usuage dengan inlfating layout @ Android listview dengan tombol header dan footer

Anda bisa menggunakan addHeaderView dan addFooterView untuk daftar untuk menambahkan header dan footer.

Anda dapat melakukan apa yang disarankan oleh @blackbelt. Saya telah menggunakan tata letak relatif bukan LinearLayout. 

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:gravity="center"
Android:orientation="vertical" >

<ListView
    Android:id="@+id/lv"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
      Android:layout_above="@+id/textView1"
    Android:layout_below="@+id/tv1" />

<TextView
    Android:id="@+id/textView1"
    Android:layout_width="fill_parent"
    Android:layout_height="40dp"
    Android:gravity="center"
    Android:layout_centerHorizontal="true"
    Android:layout_alignParentBottom="true"
    Android:text="Footer" />

<TextView
    Android:id="@+id/tv1"
    Android:layout_width="fill_parent"
    Android:layout_height="40dp"
    Android:gravity="center"
    Android:layout_alignParentTop="true"
    Android:orientation="vertical"
    Android:layout_centerHorizontal="true"
    Android:text="Header" />

</RelativeLayout>

Layout grafis Layout jepretan

enter image description here

11
Raghunandan

Gunakan LinearLayout, tambahkan header Anda pada ListView dan footer di atas. Memberi ListView layout_weight="1"

7
Blackbelt

buat header dan footer khusus Anda dengan kode tampilan daftar seperti di bawah ini

file header.xml  

 <RelativeLayout 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content">

        <TextView      
            Android:layout_width="match_parent"
            Android:layout_height="your custom height" // you may set default too
          />

    </RelativeLayout>

file footer.xml

 <RelativeLayout 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >
        <Button 
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"/>
    </RelativeLayout>

tambahkan di mana tampilan daftar Anda

 LayoutInflater inflaterHeader = getLayoutInflater();
    ViewGroup header = (ViewGroup) inflaterFooter.inflate(
                    R.layout.header, list_view, false);
    yourListView.addHeaderView(header);

    LayoutInflater inflaterFooter = getLayoutInflater();
            ViewGroup footer = (ViewGroup) inflaterFooter.inflate(
                    R.layout.footer, list_view, false);
    yourListView.addFooterView(footer);
1
Arpan24x7

Buat Tampilan header dan footer terpisah yang Anda temukan di bagian atas dan bawah ListView. Kemudian atur opacity untuk Views tersebut.

1
ThaMe90

kita dapat mengatur header dan footer dengan cara ini juga, saya mengatur tata letak header di atas listview dan dengan cara yang sama kita dapat dan footer di bawah listview

<LinearLayout
        Android:id="@+id/ly_header"
        Android:layout_width="match_parent"
        Android:layout_height="50dp"
        Android:background="@color/app_theme_color"
        Android:orientation="horizontal">
        <include layout="@layout/header_icuc"/>
    </LinearLayout>

    <ListView
        Android:id="@+id/lv_contacts"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_below="@+id/ly_header"
        Android:background="#F3F4F6"
        Android:divider="@drawable/contact_list_divider"
        Android:dividerHeight="2dp"
        Android:scrollbars="none" />
1
Puneet Kumar