async void hscroll1And2_ItemSelected(object sender, HScrollEventArgs e) { HorizontalScrollLayout layout = (HorizontalScrollLayout)sender; if (layout.Id.ToString() == this.hscroll1.Id.ToString()) { HScrollViewCell1Data record = (HScrollViewCell1Data)e.Data; if (record.shortSelectionTime) { await Task.Delay(250); layout.UnselectItem(record); } } if (layout.Id.ToString() == this.hscroll2.Id.ToString()) { HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data; if (record.resetSelection) { await Task.Delay(250); foreach (object selectedRecord in layout.SelectedItems) { layout.UnselectItem(selectedRecord); } } } }
async void hscroll1And2_ItemSelected(object sender, HScrollEventArgs e) { HorizontalScrollLayout layout = (HorizontalScrollLayout)sender; ContentView view = e.Template; if (layout.Id.ToString() == HScroll1.Id.ToString()) { HScrollViewCell1Data record = (HScrollViewCell1Data)e.Data; if (record.shortSelectionTime) { await Task.Delay(250); // Unselect item by record layout.UnselectItem(record); // Alternate possibility: unselect the view itself //layout.UnselectItem(view); } } else { HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data; if (record.resetSelection) { await Task.Delay(250); foreach (object selectedRecord in layout.SelectedItems) { if (layout.ItemIsSelected(selectedRecord)) { layout.UnselectItem(selectedRecord); } } } } }
void hscroll1And2_ItemUnSelected(object sender, HScrollEventArgs e) { HorizontalScrollLayout layout = (HorizontalScrollLayout)sender; if (layout.Id.ToString() == HScroll1.Id.ToString()) { HScrollViewCell1Data record = (HScrollViewCell1Data)e.Data; } if (layout.Id.ToString() == HScroll2.Id.ToString()) { HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data; } }
private void LoadHScrolls() { var dataHScroll1 = new HScrollViewCell1Data[] { new HScrollViewCell1Data { id = 1, name = "Item 1", shortSelectionTime = false }, new HScrollViewCell1Data { id = 2, name = "Item 2", shortSelectionTime = false }, new HScrollViewCell1Data { id = 3, name = "Item 3", shortSelectionTime = false }, new HScrollViewCell1Data { id = 4, name = "Item 4", shortSelectionTime = true }, new HScrollViewCell1Data { id = 5, name = "Item 5", shortSelectionTime = false }, new HScrollViewCell1Data { id = 6, name = "Item 6", shortSelectionTime = false }, new HScrollViewCell1Data { id = 7, name = "Item 7", shortSelectionTime = true }, new HScrollViewCell1Data { id = 8, name = "Item 8", shortSelectionTime = false }, new HScrollViewCell1Data { id = 9, name = "Item 9", shortSelectionTime = false }, new HScrollViewCell1Data { id = 10, name = "Item 10", shortSelectionTime = false }, new HScrollViewCell1Data { id = 11, name = "Item 11", shortSelectionTime = false }, new HScrollViewCell1Data { id = 12, name = "Item 12", shortSelectionTime = false }, new HScrollViewCell1Data { id = 13, name = "Item 13", shortSelectionTime = false }, new HScrollViewCell1Data { id = 14, name = "Item 14", shortSelectionTime = true }, new HScrollViewCell1Data { id = 15, name = "Item 15", shortSelectionTime = false }, new HScrollViewCell1Data { id = 16, name = "Item 16", shortSelectionTime = false }, new HScrollViewCell1Data { id = 17, name = "Item 17", shortSelectionTime = true }, new HScrollViewCell1Data { id = 18, name = "Item 18", shortSelectionTime = false }, new HScrollViewCell1Data { id = 19, name = "Item 19", shortSelectionTime = false }, new HScrollViewCell1Data { id = 20, name = "Item 20", shortSelectionTime = false } }; HScroll1.ItemTemplate = new DataTemplate(typeof(HScrollViewCell1)); HScroll1.ItemSource = dataHScroll1; HScroll1.ItemSelected += hscroll1And2_ItemSelected; HScroll1.ItemUnSelected += hscroll1And2_ItemUnSelected; var dataHScroll2 = new HScrollViewCell2Data[] { new HScrollViewCell2Data { id = 1, name = "Item 1", resetSelection = false, icon = "icon1.png" }, new HScrollViewCell2Data { id = 2, name = "Item 2", resetSelection = false, icon = "icon2.png" }, new HScrollViewCell2Data { id = 3, name = "Item 3", resetSelection = false, icon = "icon3.png" }, new HScrollViewCell2Data { id = 4, name = "Item 4", resetSelection = true, icon = "icon4.png" }, new HScrollViewCell2Data { id = 5, name = "Item 5", resetSelection = false, icon = "icon5.png" }, new HScrollViewCell2Data { id = 6, name = "Item 6", resetSelection = false, icon = "icon6.png" }, new HScrollViewCell2Data { id = 7, name = "Item 7", resetSelection = true, icon = "icon7.png" }, new HScrollViewCell2Data { id = 8, name = "Item 8", resetSelection = false, icon = "icon8.png" }, new HScrollViewCell2Data { id = 9, name = "Item 9", resetSelection = false, icon = "icon9.png" }, new HScrollViewCell2Data { id = 10, name = "Item 10", resetSelection = false, icon = "icon0.png" }, new HScrollViewCell2Data { id = 11, name = "Item 11", resetSelection = false, icon = "icon1.png" }, new HScrollViewCell2Data { id = 12, name = "Item 12", resetSelection = false, icon = "icon2.png" }, new HScrollViewCell2Data { id = 13, name = "Item 13", resetSelection = false, icon = "icon3.png" }, new HScrollViewCell2Data { id = 14, name = "Item 14", resetSelection = true, icon = "icon4.png" }, new HScrollViewCell2Data { id = 15, name = "Item 15", resetSelection = false, icon = "icon5.png" }, new HScrollViewCell2Data { id = 16, name = "Item 16", resetSelection = false, icon = "icon6.png" }, new HScrollViewCell2Data { id = 17, name = "Item 17", resetSelection = true, icon = "icon7.png" }, new HScrollViewCell2Data { id = 18, name = "Item 18", resetSelection = false, icon = "icon8.png" }, new HScrollViewCell2Data { id = 19, name = "Item 19", resetSelection = false, icon = "icon9.png" }, new HScrollViewCell2Data { id = 20, name = "Item 20", resetSelection = false, icon = "icon0.png" } }; HScroll2.ItemTemplate = new DataTemplate(typeof(HScrollViewCell2)); HScroll2.ItemSource = dataHScroll2; HScroll2.ItemSelected += hscroll1And2_ItemSelected; HScroll2.ItemUnSelected += hscroll1And2_ItemUnSelected; HScroll3.ItemTemplate = new DataTemplate(typeof(HScrollViewCell2)); HScroll3.ItemSource = dataHScroll2; HScroll3.ItemSelected += hscroll3_ItemSelected; HScroll3.ItemUnSelected += hscroll3_ItemUnSelected; HScroll4.ItemTemplate = new DataTemplate(typeof(HScrollViewCell2)); HScroll4.ItemSelected += hscroll3_ItemSelected; HScroll4.ItemUnSelected += hscroll3_ItemUnSelected; }
public FormsPage() { this.Padding = new Thickness(30); var dataHScroll1 = new HScrollViewCell1Data[] { new HScrollViewCell1Data { id = 1, name = "Item 1", shortSelectionTime = false }, new HScrollViewCell1Data { id = 2, name = "Item 2", shortSelectionTime = false }, new HScrollViewCell1Data { id = 3, name = "Item 3", shortSelectionTime = false }, new HScrollViewCell1Data { id = 4, name = "Item 4", shortSelectionTime = true }, new HScrollViewCell1Data { id = 5, name = "Item 5", shortSelectionTime = false }, new HScrollViewCell1Data { id = 6, name = "Item 6", shortSelectionTime = false }, new HScrollViewCell1Data { id = 7, name = "Item 7", shortSelectionTime = true }, new HScrollViewCell1Data { id = 8, name = "Item 8", shortSelectionTime = false }, new HScrollViewCell1Data { id = 9, name = "Item 9", shortSelectionTime = false }, new HScrollViewCell1Data { id = 10, name = "Item 10", shortSelectionTime = false }, new HScrollViewCell1Data { id = 11, name = "Item 11", shortSelectionTime = false }, new HScrollViewCell1Data { id = 12, name = "Item 12", shortSelectionTime = false }, new HScrollViewCell1Data { id = 13, name = "Item 13", shortSelectionTime = false }, new HScrollViewCell1Data { id = 14, name = "Item 14", shortSelectionTime = true }, new HScrollViewCell1Data { id = 15, name = "Item 15", shortSelectionTime = false }, new HScrollViewCell1Data { id = 16, name = "Item 16", shortSelectionTime = false }, new HScrollViewCell1Data { id = 17, name = "Item 17", shortSelectionTime = true }, new HScrollViewCell1Data { id = 18, name = "Item 18", shortSelectionTime = false }, new HScrollViewCell1Data { id = 19, name = "Item 19", shortSelectionTime = false }, new HScrollViewCell1Data { id = 20, name = "Item 20", shortSelectionTime = false } }; this.hscroll1 = new HorizontalScrollLayout { ItemSource = dataHScroll1, ItemTemplate = new DataTemplate(typeof(HScrollViewCell1)), HeightRequest = 35, SelectionBackGroundColor = Color.Fuchsia, MultiSelection = false }; this.hscroll1.ItemSelected += hscroll1And2_ItemSelected; this.hscroll1.ItemUnSelected += hscroll1And2_ItemUnSelected; Label hScroll1Label = new Label { Text = "Horizontal scrollbar with unique selection" }; StackLayout slHScroll1 = new StackLayout { Spacing = 5, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Start, Children = { this.hscroll1, hScroll1Label } }; var dataHScroll2 = new HScrollViewCell2Data[] { new HScrollViewCell2Data { id = 1, name = "Item 1", resetSelection = false, icon = "icon1.png" }, new HScrollViewCell2Data { id = 2, name = "Item 2", resetSelection = false, icon = "icon2.png" }, new HScrollViewCell2Data { id = 3, name = "Item 3", resetSelection = false, icon = "icon3.png" }, new HScrollViewCell2Data { id = 4, name = "Item 4", resetSelection = true, icon = "icon4.png" }, new HScrollViewCell2Data { id = 5, name = "Item 5", resetSelection = false, icon = "icon5.png" }, new HScrollViewCell2Data { id = 6, name = "Item 6", resetSelection = false, icon = "icon6.png" }, new HScrollViewCell2Data { id = 7, name = "Item 7", resetSelection = true, icon = "icon7.png" }, new HScrollViewCell2Data { id = 8, name = "Item 8", resetSelection = false, icon = "icon8.png" }, new HScrollViewCell2Data { id = 9, name = "Item 9", resetSelection = false, icon = "icon9.png" }, new HScrollViewCell2Data { id = 10, name = "Item 10", resetSelection = false, icon = "icon0.png" }, new HScrollViewCell2Data { id = 11, name = "Item 11", resetSelection = false, icon = "icon1.png" }, new HScrollViewCell2Data { id = 12, name = "Item 12", resetSelection = false, icon = "icon2.png" }, new HScrollViewCell2Data { id = 13, name = "Item 13", resetSelection = false, icon = "icon3.png" }, new HScrollViewCell2Data { id = 14, name = "Item 14", resetSelection = true, icon = "icon4.png" }, new HScrollViewCell2Data { id = 15, name = "Item 15", resetSelection = false, icon = "icon5.png" }, new HScrollViewCell2Data { id = 16, name = "Item 16", resetSelection = false, icon = "icon6.png" }, new HScrollViewCell2Data { id = 17, name = "Item 17", resetSelection = true, icon = "icon7.png" }, new HScrollViewCell2Data { id = 18, name = "Item 18", resetSelection = false, icon = "icon8.png" }, new HScrollViewCell2Data { id = 19, name = "Item 19", resetSelection = false, icon = "icon9.png" }, new HScrollViewCell2Data { id = 20, name = "Item 20", resetSelection = false, icon = "icon0.png" } }; this.hscroll2 = new HorizontalScrollLayout { ItemSource = dataHScroll2, ItemTemplate = new DataTemplate(typeof(HScrollViewCell2)), HeightRequest = 60, SelectionBackGroundColor = Color.Lime, MultiSelection = true }; this.hscroll2.ItemSelected += hscroll1And2_ItemSelected; this.hscroll2.ItemUnSelected += hscroll1And2_ItemUnSelected; Label hScroll2Label = new Label { Text = "Horizontal scrollbar with multiple selection" }; StackLayout slHScroll2 = new StackLayout { Spacing = 5, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Start, Children = { this.hscroll2, hScroll2Label } }; hscroll3 = new HorizontalScrollLayout { ItemSource = dataHScroll2, ItemTemplate = new DataTemplate(typeof(HScrollViewCell2)), HeightRequest = 60, SelectionBackGroundColor = Color.Teal, MultiSelection = false }; hscroll3.ItemSelected += hscroll3_ItemSelected; hscroll3.ItemUnSelected += hscroll3_ItemUnSelected; Label hScroll3Label = new Label { Text = "Tapped items here will go into the list below" }; StackLayout slHScroll3 = new StackLayout { Spacing = 5, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Start, Children = { this.hscroll3, hScroll3Label } }; hscroll4 = new HorizontalScrollLayout { ItemTemplate = new DataTemplate(typeof(HScrollViewCell2)), HeightRequest = 60, SelectionBackGroundColor = Color.Teal, MultiSelection = false }; hscroll4.ItemSelected += hscroll3_ItemSelected; hscroll4.ItemUnSelected += hscroll3_ItemUnSelected; Label hScroll4Label = new Label { Text = "Tapped items here will go into the list above" }; StackLayout slHScroll4 = new StackLayout { Spacing = 5, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Start, Children = { this.hscroll4, hScroll4Label } }; Content = new StackLayout { Spacing = 10, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Start, Children = { slHScroll1, slHScroll2, slHScroll3, slHScroll4 } }; }