コードごとにScrollViewの高さを動的に設定したいのですが、ScrollView が実際にはそれよりも高くなります (下部の空白)。
私の考えでは、ScrollView 内のすべての Controls の Heights を取得し、それらを合計してから、その Heights を ScrollView に設定できるということでした。
私が試したのは次のコードです:
protected override void OnStart()
{
base.OnStart();
SetScrollViewSize();
}
private void SetScrollViewSize()
{
var root = FindViewById<ScrollView>(Resource.Id.root);
if (root != null)
{
var controls = GetSelfAndChildrenRecursive(root); //Gives me all Controls in the root (The ScrollView)
int heightOfAllControlsTogether = 0;
foreach (ViewGroup control in controls)
{
heightOfAllControlsTogether += control.Height;
}
ViewGroup.LayoutParams parameters = new ViewGroup.LayoutParams(root.Width, heightOfAllControlsTogether);
root.LayoutParameters = parameters;
}
}
Heights と MeasuredHeights は常に 0 (ゼロ) - (最初にレンダリングする必要があることはわかっていますが、適切な場所は何でしょうか?) そして、私のアプローチが機能するかどうかさえわかりません。
どんな助けでも大歓迎です!