繁体   English   中英

Xamarin表格-识别职位

[英]Xamarin Forms - Recognize Postition

我想发表一条仅当用户在文章底部时才可见的评论条目。 因此,应用程序必须识别用户何时滚动足够,然后一种方法应使输入字段可见。

我在互联网上找不到这样的东西,所以也许你们可以帮我。

这是没有输入字段,当用户向下滚动时...

...输入字段变为可见

如果使用的是ScollView ,则在滚动视图时将触发Scrolled事件,并且ScrolledEventArgs包含ScrollXScrollY属性,这些属性使您可以了解ScrollView当前所在的位置。 如果将ScrollYScrollViewContentSize属性的高度进行比较,例如:

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>

后面的代码( MainPageContentPage子类):

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM