我在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我会接受这个作为答案!
答案 0 :(得分:1)
在ListView上将HasUnevenRows属性设置为true。这样你就可以更好地控制单元格大小。
此外,将RowHeight保留为其默认值(-1)。