OnScroll меняет высоту с получением глюков - PullRequest
0 голосов
/ 12 октября 2019

Итак, я написал функцию, которая изменяет высоту StackLayout при прокрутке. Проблема в том, что я получаю блестки при прокрутке.

изменение высоты не плавное, когда я прокручиваю медленно.

Вот мой код, который я сейчас использую.

public void BindGrid(GridItems grid)
{
    var height = 150;
        ItemHeight = height;
    grid.OnScroll += (scrolledY) =>
    {        
        ItemHeight  = Math.Max(0, height - scrolledY);
        if (ItemHeight <= 0 || Serie == null)
            ItemVisible = false;
        else ItemVisible = true;
    };
}

Вот содержимое xaml

  <StackLayout  x:Name="lastReaded" 
                      IsVisible="{Binding ItemVisible}" 
                      HeightRequest="{Binding ItemHeight}"
                      BackgroundColor="White"
                      VerticalOptions="FillAndExpand"
                      HorizontalOptions="FillAndExpand">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="110"></RowDefinition>
                    <RowDefinition Height="30"></RowDefinition>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="30*"></ColumnDefinition>
                    <ColumnDefinition Width="70*"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Image x:Name="imgLastReadedImage" Aspect="AspectFit" Source="{Binding Serie.ImageUrl, Converter={StaticResource ImageSource}}" Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" />
                <Label Style="{StaticResource itemsHeader}" Grid.Row="0" Grid.Column="1" Text="{Binding Serie.SerieName}" x:Name="lblLastReadedTitle" />
                <controls:CustomButton Clicked="btnContinueRead_Clicked" HorizontalOptions="StartAndExpand" VerticalOptions="Start" Padding="5" x:Name="btnContinueRead" Grid.Row="1" Grid.Column="1" Style="{StaticResource ButtonContainer}" Text="{StaticResource continue}" />
            </Grid>
        </StackLayout>
        <StackLayout BackgroundColor="White" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            <controls:GridItems ItemCount="3"
                            ItemsMargin="0,0,0,100"
                            SelectedItemChanged="DataGrid_SelectedItemChanged"
                            ItemHeight="160"
                            ItemWidth="100"
                            x:Name="dataGrid"
                            ItemDisplayCount="12"
                            OnLastItemViewd="DataGrid_OnLastItemViewd">
                <controls:GridItems.ItemTemplate>
                 .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...