android - Current menu item view is always null in navigation view -


i'm using navigation view. , reason can't view of menu item. it's null. tried viewobserver, findviewbyid, didn't work. need y coord of current menu item location while performing item selection event. possible?

initializing drawer

 activity.drawerindicator.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 if (activity.drawerlayout.isdrawervisible(gravitycompat.start)) {                     activity.drawerlayout.closedrawer(gravitycompat.start);                 } else {                     activity.drawerlayout.opendrawer(gravitycompat.start);                 }             }         });         activity.drawerlayout.setdrawerlistener(new drawerlayout.drawerlistener() {             @override             public void ondrawerslide(view view, float v) {              }              @override             public void ondraweropened(view view) {                 activity.closekeyboard();             }              @override             public void ondrawerclosed(view view) {                 // refresh code can called here                 //activity.closekeyboard();             }              @override             public void ondrawerstatechanged(int i) {              }         }); 

initializing navigation view

public void initnavigationview() {         activity.navigationview.setnavigationitemselectedlistener(new navigationview.onnavigationitemselectedlistener() {              // method trigger on item click of navigation menu              @override              public boolean onnavigationitemselected(menuitem menuitem) {                  //closing drawer on item click                  final int itemid=menuitem.getitemid();                   final viewtreeobserver viewtreeobserver =activity.navigationview.getviewtreeobserver();                   viewtreeobserver.addongloballayoutlistener(new viewtreeobserver.ongloballayoutlistener() {                      @override                      public void ongloballayout() {                          view menubutton = activity.findviewbyid(itemid);                          // called when button not there yet, must test null                          if (menubutton != null) {                              // found it! need button                               int[] location = new int[2];                              menubutton.getlocationinwindow(location);                               sharedpreferencescontroller.getinstance(activity.getapplicationcontext()).settopposition(location[1]);                               // can rid of listener                              viewtreeobserver.removeglobalonlayoutlistener(this);                          }                      }                  });                   activity.drawerlayout.closedrawers();                      switch (menuitem.getitemid()) {                       case r.id.checkin:                          if (!menuitem.ischecked())                              menuitem.setchecked(true);                          return gotocheckinitemmenu();                      case r.id.boarding_passes:                          return gotoboardingpassesitemmenu(menuitem);                      case r.id.flight_status:                          return gotoflightstatusitemmenu(menuitem);                      case r.id.timetable:                          return gototimetableitemmenu(menuitem);                      case r.id.promotion:                          return gotopromotionitemmenu(menuitem);                      //case r.id.reccomend_app:                      //    return gotoreccomendappitemmenu();                      case r.id.about_app:                          return gotoaboutappitemmenu(menuitem);                      case r.id.contact_us:                          return gotocontactusitemmenu(menuitem);                      case r.id.settings:                          return gotosettingsitemmenu(menuitem);                      case r.id.data_protection:                          return gotodataprotectionitemmenu(menuitem);                      case r.id.checkin_info:                          return gotocheckininfoitemmenu(menuitem);                      case r.id.panorama:                          return gotopanoramaclubitemmenu();                      default:                          toast.maketext(activity.getapplicationcontext(), "somethings wrong", toast.length_short).show();                          return true;                  }              }          }         );     } 

as see im trying current location of menuitem on screen using treeobserver. know observer works after happens, meaning not working right after called. anyway menubutton view null


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -