listview計算高度是的奇異問題

2021-07-08 16:51:52 字數 1489 閱讀 3355

在這裡介紹的是當listview的item有過多textview時,計算listview高度不準確的問題。因為textview的邊距以及行高問題,導致計算高度時不準確。這時候需要重寫textview才能解決這個問題。

public

class

textviewmeasure

extends

textview

public

textviewmeasure(context context, attributeset attrs)

public

textviewmeasure(context context, attributeset attrs, int defstyle)

@override

protected

void

onmeasure(int widthmeasurespec, int heightmeasurespec)

}private

float

getmaxlineheight(string str) else

if (this.getparent() instanceof linearlayout)

//這裡具體this.getpaint()要注意使用,要看你的textview在什麼位置,這個是拿textview父控制項的padding的,為了更準確的算出換行

int line = (int) math.ceil((this.getpaint().measuretext(str) / (screenw - paddingleft - paddingreft)));

height = (this.getpaint().getfontmetrics().descent - this.getpaint().getfontmetrics().ascent) * line;

return height;

}}

當listview中的textview都替換為textviewmeasure時,即可使用下面方法獲取listview高度。

public static int gettotalheightoflistview(listview listview) 

int totalheight = 0

; for (int i = 0

; i < madapter.getcount(); i++)

viewgroup.layoutparams params = listview.getlayoutparams();

params.height = totalheight + (listview.getdividerheight() * (madapter.getcount() - 1));

listview.setlayoutparams(params);

listview.requestlayout();

return params.height

; }

Swift Label計算高度

計算字生符串的寬度,高度 let string 乙個叫張三的人,存了三百兩銀子,想把它藏起來,又怕被人偷去,想來想去,還是把它埋起來好。於是找了個隱蔽地方挖了個坑把銀子埋了,但還是不放心,就在埋銀子的地方立了塊牌子,上面寫道 此地無銀三百兩 他的鄰居李四看到了這個牌子,大笑道 這不是明明告訴人們,這...

iOS 根據內容計算高度

ios 根據內容計算高度,網路上搜尋到的,自己記錄下,看到的就看到了 第一步屬性宣告 1 property strong,nonatomic nsstring personprofile 第二步屬性賦值 1 self.personprofile x x x x x x xx x 第三步求出高度 1 ...

android 計算listview的高度

1.定義 int totalheight 0 2.使用 獲取listview對應的adapter listadapter listadapter comment list.getadapter for int i 0,len listadapter.getcount i len i viewgrou...