private void OpenPage(int id) { // Configure timer component for selected page: if (id != DrawerListAdapter.TimerPageId) { Timer.HideAction = true; Timer.HideDuration = false; } else { Timer.HideAction = false; } if (id == DrawerListAdapter.SettingsPageId) { DrawerListView.SetItemChecked(drawerAdapter.GetItemPosition(DrawerListAdapter.SettingsPageId), true); OpenFragment(settingsFragment.Value); } else { DrawerListView.SetItemChecked(drawerAdapter.GetItemPosition(DrawerListAdapter.TimerPageId), true); OpenFragment(trackingFragment.Value); } pageStack.Remove(id); pageStack.Add(id); // Make sure we don't store the timer page as the first page (this is implied) if (pageStack.Count == 1 && id == DrawerListAdapter.TimerPageId) { pageStack.Clear(); } }
protected override void OnCreateActivity(Bundle state) { base.OnCreateActivity(state); SetContentView(Resource.Layout.MainDrawerActivity); MainToolbar = FindViewById <Toolbar> (Resource.Id.MainToolbar); DrawerListView = FindViewById <ListView> (Resource.Id.DrawerListView); DrawerUserView = LayoutInflater.Inflate(Resource.Layout.MainDrawerListHeader, null); DrawerUserName = DrawerUserView.FindViewById <TextView> (Resource.Id.TitleTextView); DrawerImage = DrawerUserView.FindViewById <ProfileImageView> (Resource.Id.IconProfileImageView); DrawerListView.AddHeaderView(DrawerUserView); DrawerListView.Adapter = drawerAdapter = new DrawerListAdapter(); DrawerListView.ItemClick += OnDrawerListViewItemClick; var authManager = ServiceContainer.Resolve <AuthManager> (); authManager.PropertyChanged += OnUserChangedEvent; DrawerLayout = FindViewById <DrawerLayout> (Resource.Id.DrawerLayout); DrawerToggle = new ActionBarDrawerToggle(this, DrawerLayout, MainToolbar, Resource.String.EntryName, Resource.String.EntryName); DrawerLayout.SetDrawerShadow(Resource.Drawable.drawershadow, (int)GravityFlags.Start); DrawerLayout.SetDrawerListener(DrawerToggle); var drawerFrameLayout = FindViewById <FrameLayout> (Resource.Id.DrawerFrameLayout); drawerFrameLayout.Touch += (sender, e) => { // Do nothing, just absorb the event // TODO: Improve this dirty solution? }; Timer.OnCreate(this); var lp = new Android.Support.V7.App.ActionBar.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent, (int)GravityFlags.Right); MainToolbar.SetNavigationIcon(Resource.Drawable.ic_menu_black_24dp); SetSupportActionBar(MainToolbar); SupportActionBar.SetTitle(Resource.String.MainDrawerTimer); SupportActionBar.SetCustomView(Timer.Root, lp); SupportActionBar.SetDisplayShowCustomEnabled(true); if (state == null) { OpenPage(DrawerListAdapter.TimerPageId); } else { // Restore page stack pageStack.Clear(); var arr = state.GetIntArray(PageStackExtra); if (arr != null) { pageStack.AddRange(arr); } } // Make sure that the user will see newest data when they start the activity ServiceContainer.Resolve <ISyncManager> ().Run(); }
private void SetMenuSelection(int pos) { int parentPos = drawerAdapter.GetParentPosition(pos - 1); DrawerListView.ClearChoices(); if (parentPos > -1) { DrawerListView.ChoiceMode = (ChoiceMode)ListView.ChoiceModeMultiple; DrawerListView.SetItemChecked(parentPos, true); DrawerListView.SetItemChecked(pos, true); } else { DrawerListView.ChoiceMode = (ChoiceMode)ListView.ChoiceModeSingle; DrawerListView.SetItemChecked(pos, true); } }
private void SetMenuSelection(int pos) { DrawerListView.ClearChoices(); DrawerListView.ChoiceMode = (ChoiceMode)ListView.ChoiceModeSingle; DrawerListView.SetItemChecked(pos, true); }