public SearchView(LibraryType type) { //this.BackgroundImage = ImageConstants.backgroundImage; BindingContext = new SearchViewModel (); categoryType = type; var searchBar = new SearchBar (); searchBar.SearchButtonPressed += OnSearchBarButtonPressed; searchBar.TextChanged += (sender, e) => { //var changedSearchBar = (SearchBar)sender; if (e.NewTextValue == null) { //this only happens when user taps "Cancel" on iOS ViewModel.LoadItemsCommand.Execute (null); searchlistView.ItemsSource = ViewModel.SearchItems; searchlistView.IsVisible = true; resultlistView.IsVisible = false; } }; searchlistView = new ListView () { HasUnevenRows = true, ItemTemplate = new DataTemplate (typeof(SearchItemTemplate)), SeparatorColor = Color.Transparent, BackgroundColor = Color.Transparent, }; resultlistView = new ListView () { HasUnevenRows = true, ItemTemplate = new DataTemplate (typeof(ResultsItemTemplate)), //SeparatorColor = Color.Transparent, BackgroundColor = Color.Transparent, }; searchlistView.ItemTapped += (sender, e) => { var search = (Search)e.Item; ViewModel.SearchText = search.SearchText; if(categoryType != LibraryType.MyDocuments){ ViewModel.LoadResultsCommand.Execute (null); resultlistView.ItemsSource = ViewModel.Files; } else{ ViewModel.LoadDownloadedSearchResultsCommand.Execute (null); resultlistView.ItemsSource = ViewModel.DownloadedFiles; } searchlistView.IsVisible = false; resultlistView.IsVisible = true; }; resultlistView.ItemTapped += (sender, e) => { if(categoryType == LibraryType.MyDocuments){ var fileItem = (Downloads)e.Item; var page = new DocumentDetails (fileItem); this.Navigation.PushAsync (page,true); } else{ var fileItem = (ProductCatalog)e.Item; var page = new DetailsPopup (fileItem,type); this.Navigation.PushAsync (page,true); } }; Content = new PopupLayout { //VerticalOptions = LayoutOptions.Center, Content = new StackLayout { //BackgroundColor = Color.Black, Children = { searchBar, searchlistView, resultlistView } } }; resultlistView.IsVisible = false; Title = Translation.Localize("SearchLabel"); }
void SwitchLayouts(LayoutType layoutType) { if (layoutType == LayoutType.ListLayout) { if (listView == null) { listView = new ListView { BackgroundColor = Color.White, HasUnevenRows = true, ItemTemplate = new DataTemplate (typeof(DocumentsCellTemplate)), ItemsSource = ViewModel.ImageFiles, SeparatorColor = Color.Transparent, }; //listView.ItemsSource = ViewModel.Files; listView.BackgroundColor = Color.Transparent; listView.ItemTapped += (sender, e) => { var fileItem = (Downloads)e.Item; var page = new DocumentDetails (fileItem); this.Navigation.PushAsync (page, true); }; } contentLayout = new StackLayout { Children = { listView, } }; } else { if (imageGrid == null) { Device.OnPlatform (iOS: () => { imageGrid = new GridView { RowSpacing = 5, Padding = 5, ColumnSpacing = 5, WidthRequest = App.ScreenWidth, HeightRequest = App.ScreenHeight, ItemWidth = UIConstants.GetGridViewItemWidths (), ItemHeight = UIConstants.GetGridViewItemHeights (), ItemsSource = ViewModel.ImageFiles, ItemTemplate = new DataTemplate (typeof(GridViewCellTemplate)), }; }, Android: () => { imageGrid = new GridView { Padding = 20, RowSpacing = 20, ColumnSpacing = 20, ItemWidth = 500, ItemHeight = 732, ItemsSource = ViewModel.ImageFiles, ItemTemplate = new DataTemplate (typeof(DynamicDocsTemplateLayout)), IsClippedToBounds = true, }; }); imageGrid.ItemSelected += (sender, e) => { var fileItem = (Downloads)e.Value; var page = new DocumentDetails (fileItem); this.Navigation.PushAsync (page, true); }; } else { imageGrid.WidthRequest = screenwidth; imageGrid.HeightRequest = screenheight; } contentLayout = new StackLayout { Children = { imageGrid, } }; } this.Content = contentLayout; }
protected override void OnBindingContextChanged() { base.OnBindingContextChanged (); dynamic c = BindingContext; // TODO: Fix book item vertical scroll issue - RowHeight - 1 = No Scroll var itemView = new ListView { //BackgroundColor = Color.Lime, ItemsSource = new List<dynamic> { c }, ItemTemplate = new DataTemplate (typeof(ListTemplateLayout)), HasUnevenRows = false, IsPullToRefreshEnabled = false, HeightRequest = 244, VerticalOptions = LayoutOptions.FillAndExpand, SeparatorVisibility = SeparatorVisibility.None, InputTransparent = true, RowHeight = 243 }; itemView.ItemTapped += (sender, e) => { ((ListView)sender).SelectedItem = null; }; itemView.ItemSelected += (sender, e) => { if (e.SelectedItem == null) return; var currentItem = (Downloads)e.SelectedItem; var page = new DocumentDetails (currentItem); MyDocumentsView.Instance.Navigation.PushAsync (page, false); }; View = itemView; }