Androidに「ScrollView」全体の高さを取得する方法はありますか?
「layout.getMeasuredHeight()」を試しましたが、可視領域の高さのみが得られます。
Androidに「ScrollView」全体の高さを取得する方法はありますか?
「layout.getMeasuredHeight()」を試しましたが、可視領域の高さのみが得られます。
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()
て、ビュー ツリーの別の測定とレイアウトをスケジュールします。
ScrollView には常に子が 1 つしかないため、以下を使用します。
ScrollView.getChildAt(0).getHeight();
動作するはずです。