我用半透明背景的一层framelayout创建了一个叠加层。 但是,此叠加层不会阻止触摸事件与其下面的视图进行交互。 应该如何创建一个覆盖所有触摸事件的覆盖?如何创建一个将触摸事件阻挡到UI下面的UI?
5
A
回答
7
下面的代码将增加对一切的顶部覆盖层:
View v1 = new View(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
1000,
50,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.OPAQUE);
params.gravity = Gravity.BOTTOM;
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
wm.addView(v1, params);
阻止触摸事件要么就得换旗或下面的代码将工作:
protected boolean onTouchEvent (MotionEvent me) {
return true;
}
对于V1,你会做一个导入:
import android.view.View.OnTouchListener;
然后设置onTouchListener:
v1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
})
12
如果盖还没有得到触摸事件,则事件传递到底层的视图,因此阻止在它下面的意见触摸事件,让您的覆盖可触摸android:clickable="true"
+0
这是伟大的,对我的作品,谢谢 – li2
+0
好的技巧,为我工作的感谢 –
1
穿上覆盖layer.then设置按钮该按钮的android:背景=“@空”它挡住的视图下方it..hope触摸事件它解决您的问题
7
下面的代码适用于我。我添加了android:clickable="true"
来将触摸事件阻止到其下的其他视图。
这是叠加层中的ProgressBar示例。如果你不想使用ProgressBar,你可以在没有它的情况下使用FrameLayout。
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progress_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.4"
android:animateLayoutChanges="true"
android:background="@android:color/black"
android:visibility="gone"
android:clickable="true">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"/>
</FrameLayout>
相关问题
- 1. 如何在不阻挡UI的情况下创建UIView
- 2. Android - 无阻挡UI的addView
- 3. 通过不阻挡UIScrollView将UIScrollView的触摸事件转发到父视图
- 4. 如何为MKMapView创建触摸事件?
- 5. 强制触摸UITableViewCell里面的UICollectionView
- 6. 触摸事件蔓延到下一页?
- 7. 如何在不阻挡UI的情况下在QGraphicsScene中移动1000个项目
- 8. 直到UI更新或触摸事件才开始动画
- 9. 如何在DOM上触发js创建的触摸事件
- 10. iOS:如何在UI元素处理事件之前截获触摸事件
- 11. 如何仅将jQuery Mobile用于其触摸事件支持(无UI增强)?
- 12. 如何将触摸事件从UIView传递到它下面的UIView?
- 13. 处理触摸事件到一个UITableCell
- 14. 如何在不阻挡UI的情况下向WPF程序添加延迟
- 15. 间接触发UI的触发事件
- 16. 为appBar的iconElementLeft添加触摸事件 - material-ui
- 17. 工作在iPad/iPhone/iPod上的jQuery UI触摸事件?
- 18. 如何创建一个事件下载完成时触发
- 19. 如何在另一个视图后面接收触摸事件?
- 20. 如何创建一个不处理触摸事件的透明过滤器
- 21. 触摸事件上下andengine
- 22. 如何创建Alloy UI下拉菜单
- 23. 读取XML文件创建一个UI
- 24. 如何将触摸事件从一个视图传递到另一个视图
- 25. Jquery UI动态创建按钮未触发事件
- 26. 对话框创建后jQuery ui对话框触发事件
- 27. jQuery UI手风琴创建事件没有触发
- 28. 将Swing UI带到下一个级别?
- 29. 如何将触摸事件传递给tableview下的另一个视图?
- 30. Draggable正在阻止触摸事件
我怎么会不记得触摸监听器? +1 – jvrodrigues