前天在工作中遇到在listview中的item需要用listview來展現處理後的內容,然後就遇到了乙個很頭疼的問題,作為item的listview沒法進行滑動,而且顯示也不正常,只是顯示幾個子item。不能將子item全部顯示,原因是在控制項繪製出來之前要對listview的大小進行計算,要解決將子listview全部顯示出來的問題,就是重新計算一下其大小告知系統即可。後面這個問題比較好解決,網上已經給出解決方案:
前輩們給出了乙個方法,重新計算子listview的大小,然後在設定本listview的adapter之後執行這個方法就好了,具體**如下:
01
/**
02
03
* 設定listview的高度
04
05
*/
06
07
public
void
setlistviewheight(listview listview)
16
17
int
totalheight =
0
;
18
19
for
(
int
i =
0
; i < listadapter.getcount(); i++)
28
29
viewgroup.layoutparams params = listview.getlayoutparams();
30
31
params.height = totalheight + (listview.getdividerheight() * (listadapter.getcount() -
1
));
32
33
listview.setlayoutparams(params);
34
35
}
但是這個方法設定的item的layout必須是帶有onmeasure()方法的控制項,否則在計算的時候會報錯,建議使用linearlayout。
再乙個思路相同,但是,不是額外做方法來實現onmeasure()方法的計算listview的大小,而是自己繼承listview,重寫listview的onmeasure()方法,來自己計算listview的高度,然後再xml中直接使用這個自定義的listview就可以了。
01
public
class
mylistview
extends
listview
08
09
public
mylistview (context context)
14
15
public
mylistview (context context, attributeset attrs,
int
defstyle)
20
21
@override
22
23
public
void
onmeasure(
int
widthmeasurespec,
int
heightmeasurespec)
32
33
}
這是解決讓作為item的listview顯示全部內容的方案,但是有些時候我們是想讓作為item的listview不用全部顯示,而是可以進行滑動,要解決這個問題就需要了解一下android對事件的分發機制了
ListView中巢狀RadioButton按鈕
listview中巢狀radiobutton按鈕中導致單選按鈕可以多選,所以為了解決這個問題,我看網上都出現好多方法。試了好多,也不行,自己思考,豐衣足食。核心 final int index position holder.radio.setonclicklistener new onclickl...
解決ListView巢狀ListView遇到的問題
listview巢狀會造成的問題主要是子listview的高度錯誤導致內容不能正常顯示完,解決這個問題,我個人第乙個想法就是重新計算子listview的高度,如下 private void setlistviewheightbasedonchildren listview listview int ...
ListView巢狀listView問題
listview巢狀listview 外層的listview是原生的,裡面的是自定義的mylistview 1.如果兩層都是listview,出現問題 裡層的listview只會顯示一條資料 2.如果外層mylistview,裡層listview 出現問題 導致只能顯示一屏資料,而且裡層的listv...