降低水平listview的高度 - xamarin形式

时间:2017-04-27 04:38:46

标签: listview xamarin.forms horizontallist

我试图让水平列表视图水平滚动,其中包含一些数字(0-23)作为项目。

我将listview视为水平,但listview的高度并未包含在内容中。我尝试将RelativeLayout与xConstraint,yConstraint,width和heightConstraint一起使用,我尝试更改其中的参数值,但listview在我更改值时一直消失。

ListView lv = new ListView
        {
            SeparatorVisibility = SeparatorVisibility.None,
            ItemsSource = items,
            Rotation = 270,

            ItemTemplate = new DataTemplate(() =>
            {

                Label label = new Label()
                {
                    Rotation = 90,
                    TextColor = Color.Black,
                    HorizontalTextAlignment = TextAlignment.Center,
                    FontSize = Device.GetNamedSize(NamedSize.Small, new Label())
                };
                label.SetBinding<User>(Label.TextProperty, indexer => indexer.Time);

                return new ViewCell
                {
                    View = new StackLayout
                    {
                        Children =
                            {
                            label
                        }
                    }
                };
            })
        };

        RelativeLayout rLayout = new RelativeLayout();

        rLayout.Children.Add(lv,
                             xConstraint: Constraint.RelativeToParent((parent) =>
                              {
                                  return (parent.Width / 0.5) - 30;
                              }),
                             yConstraint: Constraint.RelativeToParent((parent) =>
                              {
                                  return (parent.Height / -0.5) + 3;
                              }),
                             widthConstraint: Constraint.Constant(60),
                             heightConstraint: Constraint.RelativeToParent((Parent) =>
                              {
                                  return (Parent.Height / 10);
                              })
        );

        Content = new StackLayout
        {
            Children = {
                rLayout
            }
        };

我是xamarin的新手,可能是我走的路是错的。如果是这样,请建议我正确的..但总的来说,我想要一个只有数字作为项目的水平列表视图,我希望将高度包装到内容中。

请提供任何帮助......请提前致谢..

1 个答案:

答案 0 :(得分:0)

如果要在列表视图中设置项目的自动高度,则必须在XAML文件中使用HasUnevenRow="true"

示例:

    <ListView x:Name="SomeList" HasUnevenRows="True" ItemsSource="{Binding ...}" SeparatorVisibility="None">
       <ListView.ItemTemplate>
          <DataTemplate>
            <ViewCell>
              <ViewCell.View>
                <Label HorizontalOptions="CenterAndExpand" TextColor="Blue" Margin="0,5,0,5" Text="{Binding ....}" FontSize="Small" HeightRequest="35"/>
              </ViewCell.View>
            </ViewCell>
          </DataTemplate>
        </ListView.ItemTemplate>
      </ListView>