私はそうのように定義された、私のXamarinアプリでリストビューを持っている:私はサイズを変更した場合Xamarin ListViewで画面のサイズを変更せずに自動的に行のサイズを変更するにはどうすればよいですか?
:私は最初にそのItemsSource
プロパティを設定すると
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
};
})
};
、行がそうのようにクリップされ画面は、正しいサイズにリサイズされます。
ItemsSource
を再び変更すると、クリップされてしまうことになります。 UpdateChildrenLayout
またはForceLayout
を呼び出しても効果はありません。
ユーザーにウィンドウのサイズ変更を要求せずに、ListViewで行のサイズを正しく設定するにはどうすればよいですか?それはモバイルで厳しい要求になるだろう!