我想在渲染之前測量ListView
中每個項目的高度。測量列表視圖項的高度
我加入這個方法我自定義ListView
public void measureItemsHeight() {
mItemCount = getAdapter().getCount();
if(mItemOffsetY == null){
mItemOffsetY = new int[mItemCount];
}
for(int i = 0; i < mItemCount; ++i){
View view = getAdapter().getView(i, null, this);
view.measure(0, 0);
mItemHeight[i] = view.getMeasuredHeight();
}
}
然後,在我的活動的onCreate()
:
mListView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mListView.measureItemsHeight();
}
}
);
值我得到的是比getHeight()
報道的有所不同,如getMeasuredHeight()
返回48 ,並且getHeight()
返回72.
The layo我使用的項目是simple_list_item
它在我看來這就像一個hdpi和xhdpi問題,有沒有辦法解決這個問題?我用來調試的設備是Samsung SGS2,可能是這個問題。
你可以附加'simple_list_item.xml'嗎?另外,你可以給一些*上下文*,解釋你爲什麼要測量所有可能的孩子的身高? – Raffaele
以及我需要得到我的項目的高度,使自己的ScrollY德獲得多少像素,我已經在列表視圖中滾動,因爲你不能跟蹤通常 –