コード例 #1
0
        public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Menu.toolbarMenu, menu);
            _searchMenuItem      = menu.FindItem(Resource.Id.action_search);
            _searchView          = (SearchView)_searchMenuItem.ActionView;
            _searchView.MaxWidth = int.MaxValue;
            _searchMenuItem.SetOnActionExpandListener(new SearchExpandListener(this));

            _searchView.QueryTextChange += (s, e) =>
            {
                SearchAdapter?.Filter.InvokeFilter(e.NewText);
            };

            _searchView.QueryTextSubmit += (s, e) =>
            {
                if (SearchAdapter != null)
                {
                    e.Handled = true;
                }
            };

            if (!string.IsNullOrEmpty(_searchQuery))
            {
                _searchMenuItem.ExpandActionView();
                _searchView.SetQuery(_searchQuery, false);
            }

            return(true);
        }
コード例 #2
0
        public static void ExpandActionView(this IMenuItem menuItem)
        {
#if API8SUPPORT
            MenuItemCompat.ExpandActionView(menuItem);
#else
            menuItem.ExpandActionView();
#endif
        }
コード例 #3
0
ファイル: SearchableActivity.cs プロジェクト: pictos/Opus
        public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Menu.search_toolbar, menu);
            IMenuItem searchItem = menu.FindItem(Resource.Id.search);

            searchItem.ExpandActionView();
            searchView           = searchItem.ActionView.JavaCast <SearchView>();
            searchView.MaxWidth  = int.MaxValue;
            searchView.QueryHint = GetString(Resource.String.youtube_search);
            searchView.SetQuery(((SearchView)MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView).Query, false);
            searchView.QueryTextChange += (s, e) =>
            {
                Console.WriteLine("&Search view query changed, newText: " + e.NewText);
                if (e.NewText.Length > 0)
                {
                    Task.Run(() =>
                    {
                        try
                        {
                            using (WebClient client = new WebClient {
                                Encoding = System.Text.Encoding.UTF7
                            })
                            {
                                string json         = client.DownloadString("http://suggestqueries.google.com/complete/search?client=youtube&ds=yt&client=firefox&q=" + /*WebUtility.HtmlEncode(*/ e.NewText /*)*/);
                                json                = json.Substring(json.IndexOf(",") + 1);
                                json                = json.Remove(json.Length - 1);
                                List <string> items = JsonConvert.DeserializeObject <List <string> >(json);
                                suggestions         = items.ConvertAll(StringToSugest);
                                suggestions.InsertRange(0, History.Where(x => x.Text.StartsWith(e.NewText)));

                                if (SearchQuery == null || SearchQuery == "")
                                {
                                    RunOnUiThread(new Java.Lang.Runnable(() => { ListView.Adapter = new SuggestionAdapter(instance, Resource.Layout.SuggestionLayout, suggestions); }));
                                }
                            }
                        }
                        catch (Exception ex) { Console.WriteLine("&Search ex: " + ex.Message); }
                    });
                }
                else
                {
                    suggestions      = History;
                    adapter          = new SuggestionAdapter(instance, Resource.Layout.SuggestionLayout, suggestions);
                    ListView.Adapter = adapter;
                }
            };
            searchView.QueryTextSubmit += (s, e) =>
            {
                SearchQuery = e.NewText;
                AddQueryToHistory(e.NewText);
                Finish();
                OverridePendingTransition(0, 0);
                e.Handled = true;
            };
            searchItem.SetOnActionExpandListener(this);
            return(base.OnCreateOptionsMenu(menu));
        }
コード例 #4
0
 private static void SetIsActionViewExpanded(IBindingMemberInfo bindingMemberInfo, IMenuItem menuItem, bool value)
 {
     if (value)
     {
         menuItem.ExpandActionView();
     }
     else
     {
         menuItem.CollapseActionView();
     }
 }
コード例 #5
0
        private static void SetIsActionViewExpanded(IBindingMemberInfo bindingMemberInfo, IMenuItem menuItem, bool value)
        {
#if APPCOMPAT
            if (value)
            {
                MenuItemCompat.ExpandActionView(menuItem);
            }
            else
            {
                MenuItemCompat.CollapseActionView(menuItem);
            }
#else
            if (value)
            {
                menuItem.ExpandActionView();
            }
            else
            {
                menuItem.CollapseActionView();
            }
#endif
        }
コード例 #6
0
        public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Menu.Hoofdscherm, menu);
            _searchItem = menu.FindItem(Resource.Id.search);
            _searchItem.ExpandActionView();
            MenuItemCompat.SetOnActionExpandListener(_searchItem, this);
            View tempSearchView = MenuItemCompat.GetActionView(_searchItem);
            _searchView = tempSearchView.JavaCast<SearchView>();
            _searchView.SetIconifiedByDefault(false);
            _searchView.RequestFocus();

            _searchView.QueryTextChange += (sender, args) =>
            {
                if (args.NewText.Length > 0)
                {
                    _adapter.Filter.InvokeFilter(args.NewText);
                }
                else
                {
                    _adapter.Filter.InvokeFilter("zxcvbnmasdfghjklqwertyuiopmnbvcxzlkjhgfdsapoiuytrewq");
                }
            };
            _searchView.QueryTextSubmit += (sender, args) =>
            {
                if (args.Query.Length > 0)
                {
                    _adapter.Filter.InvokeFilter(args.Query);
                }
                else
                {
                    _adapter.Filter.InvokeFilter("zxcvbnmasdfghjklqwertyuiopmnbvcxzlkjhgfdsapoiuytrewq");
                }

                Toast.MakeText(this, _adapter.Items.Count + " results", ToastLength.Short).Show();
            };
            return base.OnCreateOptionsMenu(menu);
        }
コード例 #7
0
ファイル: ReposActivity.cs プロジェクト: messier16/MyIssues
 public bool OnMenuItemClick(IMenuItem item)
 {
     item.ExpandActionView();
     return(true);
 }
コード例 #8
0
ファイル: PagerFragment.cs プロジェクト: pictos/Opus
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            System.Console.WriteLine("&Pager view created");

            View view = inflater.Inflate(Resource.Layout.ViewPager, container, false);
            TabLayout tabs = Activity.FindViewById<TabLayout>(Resource.Id.tabs);
            ViewPager pager = view.FindViewById<ViewPager>(Resource.Id.pager);

            ((AppBarLayout.LayoutParams)Activity.FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsingToolbar).LayoutParameters).ScrollFlags = AppBarLayout.LayoutParams.ScrollFlagScroll | AppBarLayout.LayoutParams.ScrollFlagEnterAlways | AppBarLayout.LayoutParams.ScrollFlagSnap;
            tabs.Visibility = ViewStates.Visible;
            tabs.RemoveAllTabs();

            if (type == 0)
            {
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.songs)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.folders)));

                adapter = new ViewPagerAdapter(ChildFragmentManager);
                adapter.AddFragment(Browse.NewInstance(), Resources.GetString(Resource.String.songs));
                adapter.AddFragment(FolderBrowse.NewInstance(), Resources.GetString(Resource.String.folders));

                pager.Adapter = adapter;
                pager.AddOnPageChangeListener(this);
                pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));

                tabs.SetupWithViewPager(pager);
                tabs.TabReselected += OnTabReselected;

                pager.CurrentItem = pos;
                tabs.TabMode = TabLayout.ModeFixed;
                tabs.SetScrollPosition(pos, 0f, true);
            }
            else if (type == 1)
            {
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.all)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.songs)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.playlists)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.lives)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.channels)));

                ViewPagerAdapter adapter = new ViewPagerAdapter(ChildFragmentManager);
                Fragment[] fragment = YoutubeSearch.NewInstances(query);
                adapter.AddFragment(fragment[0], Resources.GetString(Resource.String.all));
                adapter.AddFragment(fragment[1], Resources.GetString(Resource.String.songs));
                adapter.AddFragment(fragment[2], Resources.GetString(Resource.String.playlists));
                adapter.AddFragment(fragment[3], Resources.GetString(Resource.String.lives));
                adapter.AddFragment(fragment[4], Resources.GetString(Resource.String.channels));

                pager.Adapter = adapter;
                pager.AddOnPageChangeListener(this);
                pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
                tabs.SetupWithViewPager(pager);
                tabs.TabReselected += OnTabReselected;

                pager.CurrentItem = pos;
                tabs.TabMode = TabLayout.ModeScrollable;
                tabs.SetScrollPosition(pos, 0f, true);

                YoutubeSearch.instances[pos].IsFocused = true;
                YoutubeSearch.instances[pos].OnFocus();
                MainActivity.instance.FindViewById<TabLayout>(Resource.Id.tabs).Visibility = ViewStates.Visible;

                IMenuItem searchItem = MainActivity.instance.menu.FindItem(Resource.Id.search);
                SearchView searchView = (SearchView)searchItem.ActionView;
                searchView.Focusable = false;
                searchItem.ExpandActionView();
                searchView.SetQuery(query, false);
                searchView.ClearFocus();
                searchView.Focusable = true;
            }
            return view;
        }