This repository has been archived by the owner on May 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 51536, initial iOS cell layout is incorrect when cell has context…
… actions … (#787) * Bug 51536, initial height is incorrect when cell has context actions or ListView is in recycle mode * Improved fix for iOS uneven height cell layout * Fixed indentation and added test case for issue 44525 * Fixed indentation for test case * Added 1px room, this will fix Bugzilla31330 test, renamed test case to 51536 * Updated shared project file
- Loading branch information
1 parent
2c26d11
commit 2a300b0
Showing
3 changed files
with
85 additions
and
1 deletion.
There are no files selected for viewing
81 changes: 81 additions & 0 deletions
81
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla51536.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
using System.Linq; | ||
using Xamarin.Forms.CustomAttributes; | ||
using Xamarin.Forms.Internals; | ||
|
||
namespace Xamarin.Forms.Controls.Issues | ||
{ | ||
[Preserve(AllMembers = true)] | ||
[Issue(IssueTracker.Bugzilla, 51536, "[iOS] Xamarin.Forms ListView Row Height Does Not Adapt")] | ||
public class Bugzilla51536 : TestContentPage | ||
{ | ||
protected override void Init() | ||
{ | ||
const string InstructionsLong = "On iOS, all the list items below will have different height defined by this text, the text " + | ||
"should be wrapped and take all cell space. If this text is not wrapped and there is a lot of " + | ||
"whitespace in the cell then this test has failed. This error was happening to ListView with RecycleElement mode " + | ||
"or when cell has context actions."; | ||
|
||
const string InstructionsShort = "On iOS, all the list items below will have different height defined by this text."; | ||
|
||
var listItems = Enumerable.Range(1, 100).Select(i => new ItemViewModel | ||
{ | ||
Name = "Item" + i, | ||
Description = i % 2 == 0 ? (InstructionsLong + i) : (InstructionsShort + i) | ||
}).ToArray(); | ||
|
||
var listView = new ListView(ListViewCachingStrategy.RecycleElement) | ||
{ | ||
ItemTemplate = new DataTemplate(typeof(ItemViewCell)), | ||
HasUnevenRows = true, | ||
ItemsSource = listItems | ||
}; | ||
|
||
Content = listView; | ||
} | ||
} | ||
|
||
[Preserve(AllMembers = true)] | ||
public sealed class ItemViewModel | ||
{ | ||
public string Name { get; set; } | ||
public string Description { get; set; } | ||
} | ||
|
||
[Preserve(AllMembers = true)] | ||
public sealed class ItemViewCell : ViewCell | ||
{ | ||
public Label Label1 { get; set; } | ||
public Label Label2 { get; set; } | ||
|
||
public ItemViewCell() | ||
{ | ||
var stackLayout = new StackLayout | ||
{ | ||
Orientation = StackOrientation.Vertical, | ||
HorizontalOptions = LayoutOptions.StartAndExpand, | ||
VerticalOptions = LayoutOptions.StartAndExpand | ||
}; | ||
|
||
Label1 = new Label(); | ||
Label2 = new Label { LineBreakMode = LineBreakMode.WordWrap }; | ||
|
||
stackLayout.Children.Add(Label1); | ||
stackLayout.Children.Add(Label2); | ||
|
||
View = stackLayout; | ||
} | ||
|
||
protected override void OnBindingContextChanged() | ||
{ | ||
base.OnBindingContextChanged(); | ||
|
||
var item = BindingContext as ItemViewModel; | ||
|
||
if (item != null) | ||
{ | ||
Label1.Text = item.Name; | ||
Label2.Text = item.Description; | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters