Sim*_*mon 3 c# windows-8.1 xamarin.forms
我的 Xamarin 应用中有一个 ListView,定义如下:
listView = new ListView
{
HorizontalOptions = LayoutOptions.Fill,
HasUnevenRows = true,
RowHeight = -1,
ItemTemplate = new DataTemplate(() =>
{
var nameLabel = new Label
{
VerticalOptions = LayoutOptions.Center,
HorizontalTextAlignment = TextAlignment.Start
};
nameLabel.SetBinding(Label.TextProperty, "DisplayName");
var statusLabel = new Label
{
VerticalOptions = LayoutOptions.Center,
HorizontalTextAlignment = TextAlignment.End
};
statusLabel.SetBinding(Label.TextProperty, "Status");
var grid = new Grid
{
HorizontalOptions = LayoutOptions.Fill,
RowDefinitions = {
new RowDefinition { Height = GridLength.Auto }
},
ColumnDefinitions = {
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition { Width = GridLength.Auto }
}
};
grid.Children.Add(nameLabel, 0, 0);
grid.Children.Add(statusLabel, 1, 0);
return new ViewCell
{
View = grid
};
})
};
Run Code Online (Sandbox Code Playgroud)
当我第一次设置它的ItemsSource属性时,行被裁剪如下:
如果我调整屏幕大小,它们会被调整到正确的大小:
如果我ItemsSource再次更改,它们会重新被剪裁。调用UpdateChildrenLayout或ForceLayout无效。
如何让 ListView 正确调整其行的大小,而不必要求用户调整其窗口的大小?在移动设备上这将是一个艰难的问题!
如果 ListView 是全屏显示,则设置VerticalOptions=FillAndExpand. 不要RowHeight静态设置。由于您拥有HasUnevenRows=true它,它会根据其中内容的大小不同地调整不同行的大小。还要为VerticalOptions列表视图的 ItemTemplate 中的控件提供 ,以便它们的大小正确。
| 归档时间: |
|
| 查看次数: |
8855 次 |
| 最近记录: |