我正在最新的xamarin表格4.3中使用收藏夹视图,我想知道是否有一种方法可以使收藏夹视图的页脚停留在页面底部,即使仅在收藏夹视图中只有很少的项时
这可能吗?
谢谢
答案 0 :(得分:0)
CollectionView可以显示页眉和页脚,这些页眉和页脚可与列表中的项目一起滚动。页脚指定将在列表末尾显示的字符串,绑定或视图。它不能停留在页面底部。
解决方案:
一种简单的方法是创建带有标签的自定义控件,以模拟collectionview的页眉和页脚。
MyCustomControl:
<StackLayout Orientation="Vertical">
<Label x:Name="Header_label" Text="Hader" VerticalOptions="StartAndExpand" BackgroundColor="Red"></Label>
<CollectionView ItemsSource="{Binding models}" ItemsLayout="VerticalList">
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout>
<Label x:Name="ID_label" Text="{Binding id}"></Label>
<Label x:Name="Name_label" Text="{Binding name}"></Label>
<Image x:Name="image" Source="{Binding image}"></Image>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<Label x:Name="Footer_label" Text="Footer" VerticalOptions="EndAndExpand" BackgroundColor="Green"></Label>
</StackLayout>
型号:
public class model
{
public string name { get; set; }
public string image { get; set; }
public int id { get; set; }
}
将内容绑定到自定义控件中,也可以在MainPage中进行绑定。
请注意: 在MainActivity.cs中初始化Xamarin.Forms之前,请添加以下标志。
Forms.SetFlags("CollectionView_Experimental");
我已经在GitHub上上传了,您可以从Collectionview / MyCustomControl文件夹下载以供参考。 https://github.com/WendyZang/Test.git
已更新:
或者您可以根据collectionview项目的数量控制页脚。
创建自定义控件时,请使用IsVisible
属性。
<Label x:Name="Footer_label" IsVisible="{Binding IsVisible}" Text="Footer" VerticalOptions="EndAndExpand" BackgroundColor="Green"></Label>
使自定义控件继承INotifyPropertyChanged
。
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private bool _IsVisible;
public bool IsVisible
{
get
{
return _IsVisible;
}
set
{
if (_IsVisible != value)
{
_IsVisible = value;
NotifyPropertyChanged("IsVisible");
}
}
}
根据计数设置IsVisible
。
if (models.Count <8)
{
IsVisible = false;
}
else
{
IsVisible = true;
}