Android中是否有方法來獲得整個'ScrollView'的高度?有沒有一種方法來獲得整個'ScrollView'的高度?
我試過'layout.getMeasuredHeight()',但它只給出可見區域的高度。
Android中是否有方法來獲得整個'ScrollView'的高度?有沒有一種方法來獲得整個'ScrollView'的高度?
我試過'layout.getMeasuredHeight()',但它只給出可見區域的高度。
你想要ScrollView的孩子的高度。嘗試scrollView.getChildAt(0).getMeasuredHeight()
。
編輯
你可能嘗試具有查看測量其本身並給它一個measurespec,讓就是了它使用盡可能多的空間。事情是這樣的:
int width = ... // get screen width;
int height = 65536; // arbitrarily large value
final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST);
final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST);
view.onMeasure(widthMeasureSpec, heightMeasureSpec);
// now get the height
int measuredHeight = view.getMeasuredHeight();
全面披露:我不知道這是否會工作或它可能在你的應用程序有什麼影響。調用此方法有一個副作用,那就是設置了視圖的測量尺寸。如果可能的話,你可以嘗試創建一個單獨的重複視圖並測量該視圖;或者,在你測量黑客之後,在視圖上調用requestLayout()
以安排視圖樹的另一個測量&佈局。
滾動型始終只有一個孩子,所以使用:
ScrollView.getChildAt(0).getHeight();
應該工作。
謝謝你的回答。但它沒有給出確切的高度。我將ScrollView轉換爲PNG。雖然使用兒童的高度給出了更好的結果,然而使用ScrollView高度本身,高度仍然不正確。它傾向於不覆蓋整個視圖!請指教。 – Ahmed
可能有效的一個想法(雖然也許有點冒險)會讓視圖去衡量自己。我會將其添加到我的答案。 – Karakuri