小编Ram*_*pan的帖子

如何在两个重叠的视图上捕获onTouch事件?

布局

!*Container是一个相对布局包含两个自定义视图:OuterView1和InnerView2*外部View1是一个自定义视图,匹配父级的大小(全屏)*内部View2也是一个自定义视图,放在OuterView1顶部重叠它.

  • Container是一个相对布局,包含两个自定义视图:OuterView1和InnerView2
  • 外部View1是一个自定义视图,匹配父级的大小(全屏)
  • Inner View2也是一个自定义视图,位于OuterView1的顶部.

在OuterView1和InnerView2上,我想捕获这些触摸事件onSingleTapConfirmed()和onFling().OuterView1和InnerView2重叠的区域,我希望将控件传递给两个视图的触摸事件方法.

我试过这个:

集装箱类

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        outerView1.onTouchEvent(ev);
        innerView2.onTouchEvent(ev);
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

OuterView1类

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        gesture.onTouchEvent(event);
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

gesture是GestureDetector.SimpleOnGestureListener的一个实例,带有onDown(),onFling()和onSingleTapConfirmed()方法的日志语句

InnerView2类

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        gesture.onTouchEvent(event);
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

gesture是GestureDetector.SimpleOnGestureListener的一个实例,带有onDown(),onFling()和onSingleTapConfirmed()方法的日志语句

通过这种方法,我始终在两个视图的onDown()方法中进行回调.但我没有看到onSingleTapConfirmed()和onFling()方法的一致行为

当我点击红色圆圈(在屏幕截图中)三次,我有三种不同的行为

  • 首先尝试(期望的行为)

    10-14 09:03:14.155: I/OuterView1(27776): OuterView1.onDown()
    10-14 09:03:14.155: I/InnerView2(27776): InnerView2.onDown()
    10-14 09:03:14.155: W/GestureDetector(27776): [pen gesture] isConsideredDoubleTap - timeout
    10-14 09:03:14.155: I/InnerView2(27776): InnerView2.onDown()
    10-14 09:03:14.460: I/OuterView1(27776): OuterView1.onSingleTapConfirmed()
    10-14 09:03:14.460: I/InnerView2(27776): InnerView2.onSingleTapConfirmed()
    
    Run Code Online (Sandbox Code Playgroud)
  • 第二次尝试(只有一个视图获得onSingleTapConfirmed())

    10-14 09:04:11.615: I/OuterView1(27776): …
    Run Code Online (Sandbox Code Playgroud)

android touch-event overlapping

7
推荐指数
1
解决办法
4515
查看次数

无法通过非根上下文路径中的kubernetes ingress-nginx获得Websocket应用程序的工作

这是一个示例WebSocket应用,我正在尝试使其从Kubernetes ingress-nginx控制器运行。

Kubernetes yaml:

echo "
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ws-example
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: wseg
    spec:
      containers:
      - name: websocketexample
        image: nicksardo/websocketexample
        imagePullPolicy: Always
        ports:
        - name: http
          containerPort: 8080
        env:
        - name: podname
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
---
apiVersion: v1
kind: Service
metadata:
  name: ws-example-svc
  labels:
    app: wseg
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
  selector:
    app: wseg
---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ws-example-svc
  annotations:
    kubernetes.io/ingress.class: nginx …
Run Code Online (Sandbox Code Playgroud)

nginx websocket kubernetes kubernetes-ingress nginx-ingress

5
推荐指数
1
解决办法
3003
查看次数