【问题标题】:Xamarin Forms having trouble centering a collectionviewXamarin Forms 无法将集合视图居中
【发布时间】:2021-09-11 21:35:32
【问题描述】:

我有一个这样的集合视图:

<CollectionView ItemsSource="{Binding subCategories}" ItemsLayout="HorizontalGrid, 3" IsVisible="{Binding isCollection}" HeightRequest="250" SelectionMode="Single" SelectionChanged="CollectionView_SelectionChanged" HorizontalOptions="FillAndExpand">
                                    <CollectionView.ItemTemplate>
                                        <DataTemplate>
                                            <StackLayout Spacing="8" HorizontalOptions="FillAndExpand">
                                                <Frame BorderColor="LightGray" HasShadow="True" HeightRequest="20" Margin="20" Padding="20">
                                                    <Label Text="{Binding name}" TextColor="#02cc9d" FontAttributes="Bold"></Label>
                                                </Frame>
                                            </StackLayout>
                                        </DataTemplate>
                                    </CollectionView.ItemTemplate>
                                </CollectionView>

结果如下:

我在这里尝试做两件事,第一件事是让这个集合视图居中,我已经尝试了 StackLayout 和 CollectionView 上的所有 Horizo​​ntalOptions。另一件困扰我的事情是,当一个项目被选中时,显示一个项目被选中的灰色框也没有居中,我该如何修复这个集合视图以使其看起来更好?

【问题讨论】:

  • HorizontalGrid 布局是一种根据需要水平增长的布局。水平居中可能很难,因为如果添加更多项目,它准备水平增长。试试ItemsLayout="VerticalGrid, 3"。具有不同的布局选项。
  • 重新选择框。 itemtemplate 中StackLayout 的用途是什么? (它无法解决列表级别的任何问题,因为它描述了每个项目中发生的情况。)如果您删除该包装器,将 Frame 直接放在数据模板中,灰色的选择框看起来会有所不同吗?
  • StackLayout的目的是增加间距
  • ItemsLayout="VerticalGrid, 3" 实际上解决了这两个问题
  • 感谢@ToolmakerSteve

标签: c# xamarin.forms


【解决方案1】:

HorizontalGrid layout 是根据需要水平增长的。水平居中可能很难,因为如果添加更多项目,它会水平增长。

试试ItemsLayout="VerticalGrid, 3"

如有必要,使用不同的布局选项进行测试。

(OP 在评论中说这解决了这两个问题。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多