例如在Pad产品上的应用,当把某一view对象(比如一个菜单列表)设置为可见状态时,这个view应位于最前面,但由于这个view相对较小,其下一层的UI任然可见,想要的效果就是当点击这个View对象之外的其他地方时,先触发让view不可见,然后在响应相应的点击操作,不知如何实现这一效果???
      希望高手指点!!!

解决方案 »

  1.   

    如果你用view,没用activity,那可以把事件统一通过activity处理,很容易实现这种效果。
      

  2.   

    用Activity的话,显示位置和显示的内容不太好控制吧?
      

  3.   

    用PopupWindow,怎么实现当用户点击其他地方不响应操作,而先把PopupWindow置为不可见状态呢?
      

  4.   

    参考android音量控件条的代码frameworks\base\core\java\android\view\VolumePanel.java,
    效果正是你想要的
      

  5.   

     Window window = mDialog.getWindow();
            window.setGravity(Gravity.TOP);
            LayoutParams lp = window.getAttributes();
            lp.token = null;
            // Offset from the top
            lp.y = mContext.getResources().getDimensionPixelOffset(
                    com.android.internal.R.dimen.volume_panel_top);
            lp.type = LayoutParams.TYPE_VOLUME_OVERLAY;
            lp.width = LayoutParams.WRAP_CONTENT;
            lp.height = LayoutParams.WRAP_CONTENT;
            window.setAttributes(lp);
            window.addFlags(LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);以上是现实该功能的关键代码