0

Androidに「ScrollView」全体の高さを取得する方法はありますか?

「layout.getMeasuredHeight()」を試しましたが、可視領域の高さのみが得られます。

4

2 に答える 2

3

ScrollView の子の高さが必要です。試してみてくださいscrollView.getChildAt(0).getMeasuredHeight()

編集

ビュー自体を測定して、必要なだけのスペースを使用できるように測定仕様を指定することもできます。このようなもの:

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()て、ビュー ツリーの別の測定とレイアウトをスケジュールします。

于 2013-07-11T14:54:13.280 に答える
1

ScrollView には常に子が 1 つしかないため、以下を使用します。

ScrollView.getChildAt(0).getHeight();

動作するはずです。

于 2013-07-11T15:01:09.613 に答える