退出全屏Activities

*以下内容翻译自android wear的官方教程,本人水平有限,如有错误欢迎指出
home
以下正文


默认情况下,用户从左向右滑动就可以退出Android Wear Activity。如果app包括了水平滑动的内容,用户需要滑动到左边的边界处再向右滑来退出。

为了更佳的浸入式体验,你需要app可以向任意方向滑动而不退出app。你可以屏蔽左滑退出的默认设置,这么做了之后,你必须实现 DismissOverlayView
来长按退出你的app。并且你要在用户第一次使用你的app的时候告诉TA们需要用长按来退出。

关于设计用于退出的Android Wear activities,你可以查阅 Breaking out of the card

屏蔽滑动退出手势

如果你的app与这个手势有冲突,你可以拓展默认的主题(theme),然后设置android:windowSwipeToDismiss为false

  
  

然后在AndroidManifest.xml文件中设置这个主题(theme),更准确的说是让标签的android:theme属性设置成上面的主题.


如果你完成了上面的步骤,一定一定要记得完成接下来的步骤!!!

实现长按退出

首先你要确保 DismissOverlayView
全屏且覆盖在所有的view的上面。
下面是一个示范

    
    


在你的activity当中,你可以获取
元素,然后设置一些介绍文本,这些文本将会在用户第一次使用你的app的时候自动显示(好赞)。之后用 GestureDetector
来探测长按事件:

public class WearActivity extends Activity {    
  private DismissOverlayView mDismissOverlay;    
  private GestureDetector mDetector;    
  public void onCreate(Bundle savedState) { 
    super.onCreate(savedState);        
    setContentView(R.layout.wear_activity);       
     
    // 获取 DismissOverlayView 元素     
    mDismissOverlay = (DismissOverlayView) 
    findViewById(R.id.dismiss_overlay);        
    mDismissOverlay.setIntroText(R.string.long_press_intro);     
    mDismissOverlay.showIntroIfNecessary();   
    
    // 设置手势探测器(gesture detector)
     mDetector = new GestureDetector(this, new SimpleOnGestureListener(){  
          public void onLongPress(MotionEvent ev) {      
            mDismissOverlay.show();          
          }        
     });   
  }    
  // 捕获长按事件   
  @Override    
  public boolean onTouchEvent(MotionEvent ev) {   
    return mDetector.onTouchEvent(ev) || super.onTouchEvent(ev);    
  }
}

当系统发现一个长按手势时,
元素将会显示一个Exit按钮,用户按一下之后你的activity就退出了

你可能感兴趣的:(退出全屏Activities)