虽然相似questions过去曾被问过,他们似乎并没有真正得到回答,这可能是由于对所问内容的混淆。
简而言之,我想检测当您的手指在屏幕上滑动时正在进入哪个 View 。最好的例子就是任何安卓手机上的软键盘。当您按下任意键时,它会弹出一个窗口,告诉您手指下的字母是什么。如果您现在用一个手势将手指移到键盘上,当您移过字母表中的各个字母时,会弹出各个字母。
此类行为使用哪些监听器。我已经尝试过 OnTouchListeners,但它们似乎只有在您“触摸”按钮而不是“手指经过”它们时才会出现
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {doStuff();}
});
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
doStuff();
return false;
}
});
OnFocusChangeListener
也无济于事。
最佳答案
- 创建布局
- 将 View 添加到您的布局
- 将 setOnTouchListener 设置为您的布局
使用以下代码覆盖 onTouch 方法:
public boolean onTouch(View v, MotionEvent event) { LinearLayout layout = (LinearLayout)v; for(int i =0; i< layout.getChildCount(); i++) { View view = layout.getChildAt(i); Rect outRect = new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()); if(outRect.contains((int)event.getX(), (int)event.getY())) { // over a View } } }
关于android - 检测您的手指在 Android 中滑过哪个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4838609/