7

我在我的 Android 应用程序中使用导航抽屉。

由于这是一种我发现很难发现的模式,我的计划是在屏幕底部添加一条小消息,直到用户最终发现它并通过滑动成功打开它。

我知道我可以使用:

public void onDrawerOpened(View drawerView) {
    // Stop telling the user, he know how it works
}

但是这个动作也是在用ActionBar左上角的按钮打开的时候触发的。

任何检测成功滑动的建议都将受到热烈欢迎。

4

2 回答 2

10

你需要监听状态变化回调:

        @Override
        public void onDrawerStateChanged(int newState) {                
            if (newState == DrawerLayout.STATE_DRAGGING) {
                Log.v(TAG, "Drawer opened by dragging");
            }
        }

此状态仅在用户将抽屉拖入视图时发生。点击主页图标不会引起这种情况 - 这正是您想要的。

于 2014-12-02T12:38:18.330 回答
2

在不扩展 DrawerLayout 的情况下,您可以使用 DrawerListener 和布尔标志的组合来按下 Home 按钮。

使用 onDrawerSlide 方法实现 DrawerListener。在此方法中,您可以检查 Home Button 标志,如果这是错误的并且抽屉正在滑动打开,那么您知道这是通过幻灯片进行的操作。

有点乱。

除此之外,覆盖 DrawerLayout 并覆盖 onTouchEvent 并捕获移动事件。

于 2013-07-09T15:40:13.990 回答