我想在我的Xamarin應用程式中為ScrollView添加一個向下滾動的提示,為此我遵循了這個article.
。它的實際作用是在Scrollview之外添加一個向下滾動的指示器(Label),因此如果文本超過了頁面的大小,它就會顯示這個指示,寫上"向下滾動以獲取更多!",而當完全滾動到最后時,它會隱藏這個指示。
這部分是有效的,但是如果文本小于頁面,它仍然顯示這個向下滾動的指示。
我希望,如果文本小于頁面,向下滾動指示器的可見性應該是假的。
.xaml
<Grid>
<ScrollView x: Name="MyScrollView" Scrolled="MyScrollView_Scrolled">
<StackLayout>/span>
< BoxView BackgroundColor="Red" HeightRequest="128"/>
< BoxView BackgroundColor="Orange" HeightRequest="128"/>
</StackLayout>/span>
</ScrollView>/span>
<Label x:Name="ScrollDownIndicator"
Text="Scroll down for more!"
BackgroundColor="Black"/span>
TextColor="White"/span>
字體大小="大"
HorizontalTextAlignment="Center"/span>
VerticalOptions="End"/span>/>
</Grid>/span>
.xaml.cs
private void MyScrollView_Scrolled(object sender, ScrolledEventArgs e)。
{
double spaceAvailableForScrolling = MyScrollView.ContentSize.Height - MyScrollView.Height。
double buffer = 32;
ScrollDownPrompt.IsVisible = spaceAvailableForScrolling > e.ScrollY buffer;
uj5u.com熱心網友回復:
通過對你的代碼進行修改,我得出了一個解決方案,可能會讓你達到你想要的效果。
只是在尋找解決方案嗎?請閱讀解決方案部分。如果你想知道why,請繼續閱讀Explanation部分。
解決方案首先,我意識到在你發布的代碼中,Xaml檔案中的
Label被稱為ScrollDownIndicator,但在事件處理程式中,你正在改變一個叫做ScrollDownPrompt的變數。在我的測驗中,我繼續將這兩個名字等同起來......。
在你的.xaml.cs檔案中,在你的頁面建構式中添加以下幾行:
public MainPage(/span>)
{
InitializeComponent()。
MyScrollView.PropertyChanged = (s, a) =>
{
if (a.PropertyName == ScrollView.ContentSizeProperty.PropertyName)
{
double buffer = 32;
double spaceAvailableForScrolling = MyScrollView.ContentSize.Height - MyScrollView.Height。
ScrollDownIndicator.IsVisible = spaceAvailableForScrolling > buffer;
}
};
}
private void MyScrollView_Scrolled(object sender, ScrolledEventArgs e)。
{
double spaceAvailableForScrolling = MyScrollView.ContentSize.Height - MyScrollView.Height。
double buffer = 32;
ScrollDownPrompt.IsVisible = spaceAvailableForScrolling > e.ScrollY buffer;
解釋一下
在你的代碼中,你只在事件處理程式中改變了指示器的可見性。MyScrollView_Scrolled。如果沒有進行滾動,事件處理程式就不會被呼叫,也不會檢查指示器的可見性:它只是一直可見。
為了糾正這種行為,你必須在ScrollView的ContentSize屬性改變時檢查可見性。
希望這對一些人有幫助 :D
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312688.html
標籤:
