如何在转到新的Activity类之前正确关闭导航

时间:2016-02-22 05:28:55

标签: android android-navigation-drawer android-navigationview

我想在转到新活动之前隐藏NavigationView。此时,在我的应用导航抽屉中未正确隐藏但尚未启动新活动。所以我想要正确隐藏导航然后去进行新的活动。而且我没有使用带有活动的片段数。我正在使用导航抽屉的总活动。

2 个答案:

答案 0 :(得分:0)

使用

mDrawerLayout.closeDrawers();

如果您要关闭抽屉,然后使用Activity

启动另一个Handler添加延迟
 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //launch activity here
            }
        },TIME_IN_MILLI_SEC)

答案 1 :(得分:0)

您可以尝试在选择项目时关闭抽屉:

navigationView.setNavigationItemSelectedListener(
      new NavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(MenuItem menuItem) {
              menuItem.setChecked(true);
              //saving the id of the item selected
              itemSelected = menuItem.getItemId();
              mDrawerLayout.closeDrawers();
              return true;
          }
});

然后你可以使用DrawerLayout.DrawerListener。在onDrawerClosed您可以开始您的活动

@Override    
public void onDrawerClosed(View drawerView) {
        if (itemSelected >= 0) {
            Class activityClass = null;
            switch (itemSelected) {
                case R.id.itemId:
                    activityClass = MyActivity.class;
                    break;
                //same for any other item
            }
            if (activityClass != null) {
                Intent intent = new Intent(this, activityClass);
                startActivity(intent);
                finish();
            }
        }
    }