天蠶在你身邊
不方便打電話?讓天蠶聯(lián)絡(luò)你
天蠶在你身邊
不方便打電話?讓天蠶聯(lián)絡(luò)你
重慶網(wǎng)絡(luò)公司:APP網(wǎng)站開發(fā)中l(wèi)istview的問題處理,我們在APP開發(fā)中,因為項目需要動態(tài)調(diào)整listview的頁眉頁腳,舉例:header作為顯示板使用,我們通常采用方法二種。
方法一:修改itemView的結(jié)構(gòu),代碼如下:
1 “<”LinearLayout android:id="@+id/item_root"
2 android:layout_width="fill_parent"
3 android:layout_height="50dip"
4 android:orientation="vertical" >
5 “<”LinearLayout android:id="@+id/item_container"
6 “<”TextView android:id="@+id/tv_1" />
7 “<”TextView android:id="@+id/tv_2" />
8 “<”/LinearLayout>”
9 “<”/LinearLayout >
增加了一個多余的Layout(item_container)來囊括item內(nèi)部控件。此時,如果在item_container .setVisibility(View.GONE)則可以完美實現(xiàn)隱藏HeaderView的目的!
小結(jié):View.GONE屬性不作用在根Layout上。
如果在item_root上使用了Shape背景,且此背景存在MinSize,那么此方法又失效了, 規(guī)避處理:如果的確必須要在HeaderView上添加背景background的話,那么請將background設(shè)置在item_container上吧,不要設(shè)置在item_root上,如此就可以規(guī)避新的問題了
方法二:如使用View.GONE屬性進(jìn)行隱藏,itemView代碼如下:
1 “<”LinearLayout android:id="@+id/item_root"
2 android:layout_width="fill_parent"
3 android:layout_height="50dip"
4 android:orientation="vertical" >
5 “<”TextView android:id="@+id/tv_1" />
6 “<”TextView android:id="@+id/tv_2" />
7 “<”/LinearLayout >
小結(jié):listView.addHeaderView()方法必須在setAdapter()方法前調(diào)用,否則就會拋異常。至于為什么會拋異常,查看下ListView的源代碼即可發(fā)現(xiàn)。因此,在設(shè)置HeaderView之后又想將headerView移除或者隱藏,則需要繞很大的彎子:將adapter保存起來-移除headerView-(或者更換headerview)-再將adapter設(shè)置上去
地址:重慶市渝中區(qū)上清寺鑫隆達(dá)B座28-8
郵編:400015
電話:023-63612462
EMAIL:cnjl_net@163.com