Xamarin.forms - 滚动时“粘贴”StackLayout

时间:2018-06-12 20:36:28

标签: xamarin scroll xamarin.forms stacklayout bootstrap-affix

我正试图通过bootstrap使效果“附加”。当用户滚动页面时,我希望StackLayout停在他父母的顶部。

有没有办法这样做?

这就是我要问的问题(我在这个例子中使用了视差效果):

[1]

感谢。

1 个答案:

答案 0 :(得分:0)

我的评论“为什么不使用具有内置此功能的分组的ListView?”部分是正确的。

将ListView与分组一起使用将自动在iOS上提供“Sticky Header”功能,但不会在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,您必须创建自定义渲染器,幸运的是有一个good example on github