谷歌眼镜 - 如何选择选项时实施宽限期?

时间:2014-04-02 12:34:48

标签: android google-glass android-menu google-gdk

我已在GDK documentation中读到有菜单选项,在选中时会为用户提供宽限期以通过向下滑动取消操作

与您在Glass时间轴中点击某张卡时获得的删除选项一样。

我想知道如何实现这样一个有宽限期的菜单项?

2 个答案:

答案 0 :(得分:1)

目前还没有内置的解决方案,这有点让人失望。希望在下一次更新时,他们将添加一系列应该一直在GDK中的基本功能。

请参阅https://github.com/pif/glass-progress-bar

该库非常完整,可以让你做任何你想做的事。

答案 1 :(得分:1)

以下内容应该这样做:

public static Handler MAIN_HANDLER = new Handler(Looper.getMainLooper());
private Integer pendingAction;
private Boolean isActionPending = false;
private final Long TIMEOUT = 2000; //2 seconds
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (isActionPending) {
       //TODO: better error handling
       return false;
     }
     isActionPending = true; 
    pendingAction = item.getItemId();
    new Thread( new Runnable() {
            @Override
            public void run() {
                Thread.sleep(TIMEOUT);
                MAIN_HANDLER.post(
                    new Runnable() {
                    @Override
                    public void run() {
                        onDoPendingAction();                                    
                    }
                    }
                );
                }
}).start();

}
public void onDoPendingAction() {
   if (!isPending ) {
     return; //event was canceled
   }
   switch(pendingAction) {
     case R.id.some_menu_action: 
        //Whatever you would do.
        break;
    /* other actions */
   }
   //TODO: something to indicate teh action finished.
}
public void cancelPendingAction() {
  if (isPending) {
     isPending = false;
     //TODO: something to indicate it canceled.  
  } 
}

添加手势检测器以捕获TWO_SWIPE_DOWN事件并调用cancelPendingAction();如果你发现它。在这里获取手势检测器代码。

https://developers.google.com/glass/develop/gdk/input/touch