我想动态设置每个代码的ScrollView的高度,因为我的 ScrollView 实际上比它应该高(底部的空白)。
我的想法是,我可以获得 ScrollView 中所有控件的高度,总结它们,然后我可以将该高度设置为我的 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(零) - (我知道它需要先渲染,但那会是正确的位置吗?)我什至不确定我的方法是否可行。
任何帮助,将不胜感激!