在這裡介紹的是當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...