我想做的是:
我的视图中有一个滚动视图,它的高度类似于父高度的2/9。然后,用户可以翻译此滚动视图以使其更大。但是,scrollview的大小并没有明显改变。因此即使它更大,scrollview的大小仍然保持不变,这就是重点。我最初可以把它变大。然而它不会滚动因为尺寸足够大而不能滚动。
我不知道是否能够正确解释。希望我做到了。
问候。
修改 -------------
一些代码可以进一步解释我的观点
这是scrollview
public class TranslatableScrollView : ScrollView
{
public Action TranslateUp { get; set; }
public Action TranslateDown { get; set; }
bool SwipedUp;
public TranslatableScrollView()
{
SwipedUp = false;
Scrolled += async delegate {
if (!SwipedUp && ScrollY > 0) {
TranslateUp.Invoke ();
SwipedUp = true;
} else if (SwipedUp && ScrollY <= 0) {
TranslateDown.Invoke ();
SwipedUp = false;
}
};
}
}
这是页面中的代码
sv_footer = new TranslatableScrollView {
Content = new StackLayout {
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
Children = {
l_details,
l_place
},
}
};
sv_footer.TranslateUp += new Action (async delegate {
Parent.ForceLayout();
await cv_scrollContainer.TranslateTo(0, -transX, aSpeed, easing);
});
sv_footer.TranslateDown += new Action (async delegate {
await cv_scrollContainer.TranslateTo(0, 0, aSpeed, easing);
});
cv_scrollContainer = new ContentView {
Content = sv_footer,
VerticalOptions = LayoutOptions.Fill
};
我将scrollview放在contentview中,否则当它们被翻译时它的滚动索引变为0。参考:Xamarin Forms: ScrollView returns to begging on TranslateTo
答案 0 :(得分:3)
问题是,translateTo只改变元素的位置。我可以在翻译后使用scaleTo。然而,它改变了两个方面。来自Xamarin论坛的人建议我使用我不知道存在的LayoutTo。使用布局您可以更改大小和位置。给出一个Rectangle类型的实例。