【问题标题】:To close the Navigation Drawer on touch of screen在触摸屏上关闭导航抽屉
【发布时间】:2015-09-17 12:02:53
【问题描述】:

我是这个 Android 的新手。在这里,当我单击时,我遇到了一个问题 在导航抽屉项目上,然后它提供其他项目,然后在触摸屏幕上导航抽屉关闭,但后退按钮仍然存在。

我把 mDrawerLayout.ontouchlistener 它确实有效,但我希望该图标回到点击屏幕上。我不想要返回按钮

当我点击导航抽屉内的类别项目时:

然后我在 ExpandableListView 中放了另一个具有不同 ArrayList 的适配器:

但是当我触摸屏幕时,它会关闭导航抽屉,但后退图标仍然存在:

【问题讨论】:

    标签: android android-layout android-activity navigation-drawer


    【解决方案1】:

    设置

      getSupportActionBar().setDisplayHomeAsUpEnabled(false);
      getSupportActionBar().setHomeButtonEnabled(false);
    

    在您的活动中。

    【讨论】:

      【解决方案2】:

      我检查了 developers.android.com。他们给出了一个小解决方案。希望这行得通。

       private ActionBarDrawerToggle mDrawerToggle;
          ...
           private DrawerLayout mDrawerLayout;
          public void onCreate(Bundle savedInstanceState) {
              ...
      
              mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
              mDrawerToggle = new ActionBarDrawerToggle(
                      this,                  /* host Activity */
                      mDrawerLayout,         /* DrawerLayout object */
                      R.drawable.ic_drawer,  /* nav drawer icon to replace 'Up' caret */
                      R.string.drawer_open,  /* "open drawer" description */
                      R.string.drawer_close  /* "close drawer" description */
                      ) {
      
                  /** Called when a drawer has settled in a completely closed state. */
                  public void onDrawerClosed(View view) {
                      super.onDrawerClosed(view);
                      getActionBar().setTitle(mTitle);
                  }
      
                  /** Called when a drawer has settled in a completely open state. */
                  public void onDrawerOpened(View drawerView) {
                      super.onDrawerOpened(drawerView);
                      getActionBar().setTitle(mDrawerTitle);
                  }
              };
      
              // Set the drawer toggle as the DrawerListener
              mDrawerLayout.setDrawerListener(mDrawerToggle);
      
              getActionBar().setDisplayHomeAsUpEnabled(true);
              getActionBar().setHomeButtonEnabled(true);
          }
      
          @Override
          protected void onPostCreate(Bundle savedInstanceState) {
              super.onPostCreate(savedInstanceState);
              // Sync the toggle state after onRestoreInstanceState has occurred.
              mDrawerToggle.syncState();
          }
      
          @Override
          public void onConfigurationChanged(Configuration newConfig) {
              super.onConfigurationChanged(newConfig);
              mDrawerToggle.onConfigurationChanged(newConfig);
          }
      
          @Override
          public boolean onOptionsItemSelected(MenuItem item) {
              // Pass the event to ActionBarDrawerToggle, if it returns
              // true, then it has handled the app icon touch event
              if (mDrawerToggle.onOptionsItemSelected(item)) {
                return true;
              }
              // Handle your other action bar items...
      
              return super.onOptionsItemSelected(item);
          }
      
          ...
      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多