首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检测导航抽屉是否打开?

如何检测导航抽屉是否打开?
EN

Stack Overflow用户
提问于 2014-02-08 01:10:07
回答 4查看 68.4K关注 0票数 93

标题解释了这一切。我所要做的就是知道导航抽屉是否打开。我在网上搜索了很多次,找到了isDrawerOpen(int drawerGravity)方法,但没有找到一个令人满意的答案来解释如何在方法中使用它。如果有人能给我解释一下,我将不胜感激。

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-08 01:17:04

假设您已经在xml中定义了一个drawerlayout:

代码语言:javascript
复制
DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
...
if(mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
  //drawer is open
}
票数 219
EN

Stack Overflow用户

发布于 2014-02-08 01:17:42

代码语言:javascript
复制
 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);

监听器使用:)

票数 35
EN

Stack Overflow用户

发布于 2017-12-07 14:42:18

通过以下方法,您可以发现抽屉是打开的或关闭的。

代码语言:javascript
复制
 public class YourActivity extends AppCompatActivity implements  DrawerLayout.DrawerListener {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dash_board);

        DrawerLayout drawer=(DrawerLayout)findViewById(R.id.container);
        drawer.setDrawerListener(this);
    }//onCreate()

    @Override
    public void onDrawerOpened(View arg0) {
      //write your code
    }

    @Override
    public void onDrawerClosed(View arg0) {
        //write your code
    }

    @Override
    public void onDrawerSlide(View arg0, float arg1) {
        //write your code
    }

    @Override
    public void onDrawerStateChanged(int arg0) {
        //write your code
    }
}//class
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21633791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档