簡體   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