如何设置当某一View显示在最前面时其他可见控件不可触发? 例如在Pad产品上的应用,当把某一view对象(比如一个菜单列表)设置为可见状态时,这个view应位于最前面,但由于这个view相对较小,其下一层的UI任然可见,想要的效果就是当点击这个View对象之外的其他地方时,先触发让view不可见,然后在响应相应的点击操作,不知如何实现这一效果??? 希望高手指点!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你用view,没用activity,那可以把事件统一通过activity处理,很容易实现这种效果。 用Activity的话,显示位置和显示的内容不太好控制吧? 用PopupWindow,怎么实现当用户点击其他地方不响应操作,而先把PopupWindow置为不可见状态呢? 参考android音量控件条的代码frameworks\base\core\java\android\view\VolumePanel.java,效果正是你想要的 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);以上是现实该功能的关键代码 android组件中android:id属性疑问 魅族 M9 挤压布局 查询一个表,怎样做能让结果按拼音来排序 模拟器不能安装MockGps这个软件, 下来框弹出的是一个Activity? android 动态修改组件位置的问题 关于播放音乐 sec_gps_inject_location: not implemented 移植一个新device的问题 看到网上有说华为推送的九种武器,到底是哪九种啊? 怎么配置libgdx游戏引擎 求一个应用程序:实现记事本功能:编辑,删除,保存,打开存在的文件
效果正是你想要的
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);以上是现实该功能的关键代码