我有一个滚动视图,里面是一个网格布局视图。在这个网格布局中,我有一个包含每个项目的复选框的列表。每当用户选择某一项时,底部行应缓慢展开,并显示所选项的详细信息。这是我对boxview的尝试,但不起作用。有什么办法解决这个问题吗?
void OnChanged(object sender, EventArgs e)
{
if (statusBar == null)
{
statusBar = new BoxView { Color = Color.FromHex("#33B5E5"), HeightRequest = 0 };
mainGrid.Children.Add(statusBar, 0, 4);
Grid.SetColumnSpan(statusBar, 2);
var animate = new Animation(d => statusBar.HeightRequest = d, 1, statusBar.Height, Easing.SpringIn);
animate.Commit(this, "a");
}
if (((CheckBox)sender).Checked)
checkedCount++;
else
checkedCount--;
if(checkedCount == 0)
{
mainGrid.Children.Remove(statusBar);
statusBar = null;
return;
}
}
更新:
这还是没用的。--盒子视图立即出现,。
因此,我根据建议更改了代码:
statusBar = new BoxView { Color = Color.FromHex("#33B5E5"), HeightRequest = 0 };
mainGrid.Children.Add(statusBar, 0, 4);
Grid.SetColumnSpan(statusBar, 2);
var animate = new Animation(d => statusBar.HeightRequest = d, 1, 1000, Easing.SpringIn);
animate.Commit(this, "a", length: 10000);//animation takes 2 sec to complete
发布于 2016-06-14 07:11:32
添加一些时间到你的动画。
animate.Commit(this, "a",length:2000);//animation takes 2 sec to complete
我不明白你的密码。
var animate = new Animation(d => statusBar.HeightRequest = d, 1, statusBar.Height, Easing.SpringIn);
您正在将上面的高度设置为 HeightRequest = 0
,并在1上启动动画,并以0结尾,这很可能是close
您的盒视图。尝试在end属性中添加一个更大的值,以获得您想要的动画。
var animate = new Animation(d => statusBar.HeightRequest = d, 1, 100, Easing.SpringIn);
https://stackoverflow.com/questions/37802538
复制相似问题