[英]Xamarin.Forms DatePickerCustomRenderer doesn't recognize the IOnDateSetListener
[英]Xamarin Forms - Recognize Postition
我想发表一条仅当用户在文章底部时才可见的评论条目。 因此,应用程序必须识别用户何时滚动足够,然后一种方法应使输入字段可见。
我在互联网上找不到这样的东西,所以也许你们可以帮我。
如果使用的是ScollView
,则在滚动视图时将触发Scrolled
事件,并且ScrolledEventArgs
包含ScrollX
和ScrollY
属性,这些属性使您可以了解ScrollView
当前所在的位置。 如果将ScrollY
与ScrollView
的ContentSize
属性的高度进行比较,例如:
XAML:
<StackLayout>
<ScrollView x:Name="scrollView" Scrolled="Handle_Scrolled">
<StackLayout>
<Label Text="{Binding Article}" HorizontalOptions="StartAndExpand" VerticalOptions="StartAndExpand" />
</StackLayout>
</ScrollView>
<Entry IsVisible="{Binding AtEnd}" Placeholder="End reached!" />
</StackLayout>
后面的代码( MainPage
是ContentPage
子类):
string _article;
public string Article
{
get
{
return _article;
}
set
{
if (_article != value)
{
_article = value;
OnPropertyChanged("Article");
}
}
}
bool atEnd;
public bool AtEnd
{
get
{
return atEnd;
}
set
{
if (atEnd != value)
{
atEnd = value;
OnPropertyChanged("AtEnd");
}
}
}
public MainPage()
{
Article = "<put in enough text here to force scrolling>";
AtEnd = false;
InitializeComponent();
BindingContext = this;
}
void Handle_Scrolled(object sender, Xamarin.Forms.ScrolledEventArgs e)
{
if (e.ScrollY + scrollView.Height >= scrollView.ContentSize.Height)
AtEnd = true;
else
AtEnd = false;
}
也就是说,为什么不使用相同的滚动视图将条目放在文章下方? IOW只是将Entry
元素放在同一StackLayout
上方Label
之后,Entry始终始终位于末尾,但是用户只有向下滚动才能看到它。 似乎这将是一个更简单的解决方案。 当然,您可能没有使用Label
但同样适用,只是将Entry
放在ScrollView
滚动的布局的底部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.