gpt4 book ai didi

android - 在用户移动手指时确定当前正在触摸哪个 View

转载 作者:IT老高 更新时间:2023-10-28 23:23:02 25 4
gpt4 key购买 nike

我有一个包含 66 个 View 的网格,如果一个 View 被触摸或拖动/移动,我想更改它的背景颜色。

我猜我需要在父 ViewGroup 上放置一个触摸监听器,但是我如何确定正在拖动/移动哪个 subview ?

最佳答案

在这里找到我的答案:

Android : Get view only on which touch was released

看起来您必须遍历 subview 并手动进行命中检测才能找到当前触摸结束的 View 。

通过覆盖父 LinearLayout 上的 dispatchTouchEvent 来做到这一点:

LinearLayout parent = new LinearLayout(this.getActivity()){
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int x = Math.round(ev.getX());
int y = Math.round(ev.getY());
for (int i=0; i<getChildCount(); i++){
LinearLayout child = (LinearLayout)row.getChildAt(i);
if(x > child.getLeft() && x < child.getRight() && y > child.getTop() && y < child.getBottom()){
//touch is within this child
if(ev.getAction() == MotionEvent.ACTION_UP){
//touch has ended
}
}
}
return true;
}
}

关于android - 在用户移动手指时确定当前正在触摸哪个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19570928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com