如何在Android中创建具有均等大小的列的项目列表

时间:2019-01-09 20:39:21

标签: android wpf

我想在Android中实现以下目标:

table

请注意,内容是动态的,因此在编译时无法固定列的宽度。行数是动态的,但是列数是固定的。

在WPF中,我将使用ItemsControl作为StackPanel的{​​{1}}。然后,我将ItemsPanel设置为包含ItemTemplateDataTemplate的{​​{1}}的{​​{1}}。像这样:

Grid

我不知道如何在Android中做到这一点。 我知道我必须使用ColumnDefinition(相当于SharedSizeGroup)和<DataTemplate DataType="MyViewModel" x:Key="MyItemTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition SharedSizeGroup="Col0"/> <ColumnDefinition SharedSizeGroup="Col1"/> <ColumnDefinition SharedSizeGroup="Col2"/> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Text={Binding Column0} Margin="0 0 5 0"/> <TextBlock Grid.Column="1" Text={Binding Column1} Margin="0 0 5 0"/> <TextBlock Grid.Column="2" Text={Binding Column2}/> </Grid> </DataTemplate> <ItemsControl ItemTemplate={StaticResource MyItemTemplate}> <ItemsControl.ItemsPanel> <StackPanel Grid.IsSharedSizeScope="True"/> </ItemsControl> </ItemsControl> (相当于RecyclerView)。但是如何匹配每个项目中的列大小?

1 个答案:

答案 0 :(得分:0)

您应该使用RecyclerView。但首先,请尝试使用GridView

<GridView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:stretchMode="columnWidth"
    android:numColumns="3"
    android:verticalSpacing="5dp"
    android:horizontalSpacing="5dp"
    android:padding="10dp"/>