Xamarin.forms - "Affix" StackLayout при прокрутке - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь сделать эффект "аффикс" из начальной загрузки.Когда пользователь прокручивает страницу, я хочу, чтобы StackLayout остановился на вершине своего родителя.

Есть ли способ сделать это?

Вот что я спрашиваю (яиспользуя эффект параллакса в этом примере):

[1]

Спасибо.

1 Ответ

0 голосов
/ 13 июня 2018

Мой комментарий "Почему бы не использовать ListView с группировкой, которая имеет эту встроенную функциональность?"отчасти правильно.

Использование ListView с группировкой автоматически обеспечит функциональность «Sticky Header» на iOS, но не на Android.

Так что для iOS будет работать следующий код:

public class ToysList : List<Toy>
{
    public string Header { get; set; }
    public List<Toy> Toys => this;
}

public class Toy
{
    public string Name { get; set; }
}

// Initialise Toys in your ViewModel

<ListView
    ItemsSource="{Binding Toys}"
    IsGroupingEnabled="true">
    <ListView.GroupHeaderTemplate>
        <DataTemplate>
            <ViewCell>
                <Label Text="{Binding Header}" />
            </ViewCell>
        </DataTemplate>
    </ListView.GroupHeaderTemplate>

    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
               <Label Text="{Binding Name}" />
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Для Android вам нужно создать пользовательский рендер, к счастью, на github есть хороший пример .

...