我在Android应用中使用了Navigation Drawer。
由于这是一个我觉得很难发现的模式,我的计划是在屏幕底部添加一条消息,直到用户最终发现它并通过滑动成功打开它。
我知道我可以使用:
public void onDrawerOpened(View drawerView) {
// Stop telling the user, he know how it works
}
但是当使用ActionBar中的左上角按钮打开它时也会触发此动作。
任何有关检测成功滑动的建议都会受到热烈欢迎。
答案 0 :(得分:6)
您需要收听状态更改回调:
@Override
public void onDrawerStateChanged(int newState) {
if (newState == DrawerLayout.STATE_DRAGGING) {
Log.v(TAG, "Drawer opened by dragging");
}
}
仅当用户将抽屉拖入视图时才会出现此状态。点击主页图标不会导致这种情况 - 这正是您想要的。
答案 1 :(得分:2)
如果不扩展DrawerLayout,您可以使用DrawerListener和Home按钮按下的布尔标志的组合。
使用onDrawerSlide方法实现DrawerListener。在此方法中,您可以检查主页按钮标志,如果这是假的并且抽屉滑动打开,那么您知道这是通过幻灯片的操作。
有点凌乱。除了覆盖DrawerLayout并覆盖onTouchEvent并捕获移动事件。