在Xamarin.Forms ListView中的项之间填充

时间:2017-02-10 15:34:46

标签: c# android xamarin xamarin.forms

我在Xamarin.Forms项目中定义了以下Cell类型:

    public MyCell() // constructor
    {
        var messageLabel = new Label
        {
            FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
            FontAttributes = FontAttributes.Bold,
        };
        messageLabel.SetBinding(Label.TextProperty, new Binding("Message"));

        var dateLabel = new Label
        {
            FontSize = Device.GetNamedSize(NamedSize.Micro, typeof(Label))
        };
        dateLabel.SetBinding(Label.TextProperty, new Binding("Date"));

        var view = new StackLayout
        {
            Children = { messageLabel, dateLabel  },
            Orientation = StackOrientation.Vertical,
        };

        View = view;
    }

这在ListView中调用,如下所示:

    public MyPage()
    {
        var listView = new ListView()
        {
            ItemsSource = GetAllitems(),
            ItemTemplate = new DataTemplate(typeof(MyCell)),
        };

        Content = listView
     }

当这个在屏幕上呈现时,每个项目实际上都被压制在邻居身上。我尝试在MyCell类的StackLayout中添加填充,但这样做会导致文本离开屏幕。我希望每个项目之间都有差距。

我认为将视图转换为使用Xaml以使其更清晰可能是值得的,所以如果它更容易实现Xaml我会接受这个作为答案!

1 个答案:

答案 0 :(得分:1)

在ListView上将HasUnevenRows属性设置为true。这样你就可以更好地控制单元格大小。

此外,将RowHeight保留为其默认值(-1)。