Xamarin Forms:更改 translateto 上滚动视图的大小
Xamarin Forms: Change the size of scrollview on translateto
我想做的是:
我的视图中有一个滚动视图,它的高度大约是父级高度的 2/9。然后用户可以翻译这个滚动视图以使其更大。但是 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
};
我将滚动视图放在内容视图中,否则它的滚动索引在翻译时变为 0。参考:
问题是,translateTo 仅更改元素的位置。我可以在翻译后使用 scaleTo。然而,它改变了两个维度。 Xamarin 论坛的某个人建议我使用我不知道存在的 LayoutTo。使用 layoutTo,您可以更改大小和位置。给出一个 Rectangle 类型的实例。
我想做的是:
我的视图中有一个滚动视图,它的高度大约是父级高度的 2/9。然后用户可以翻译这个滚动视图以使其更大。但是 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
};
我将滚动视图放在内容视图中,否则它的滚动索引在翻译时变为 0。参考:
问题是,translateTo 仅更改元素的位置。我可以在翻译后使用 scaleTo。然而,它改变了两个维度。 Xamarin 论坛的某个人建议我使用我不知道存在的 LayoutTo。使用 layoutTo,您可以更改大小和位置。给出一个 Rectangle 类型的实例。