三星Galaxy S4具有“浮动触摸”功能,即使未触摸屏幕,也可以检测到手指。
当手指悬停时,我想在按钮(btn1
)上发射一个事件。
我尝试使用OnHoverListener
,但onHover
为MotionEvent
或MotionEvent.ACTION_HOVER_ENTER
或MotionEvent.ACTION_HOVER_EXIT
时,MotionEvent.ACTION_HOVER_MOVE
永远不会被调用我需要的事件。
这是我的代码:
btn1.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
Log.d("FloatingTouch", "onHover: "+event.getAction());
switch (event.getAction()) {
case MotionEvent.ACTION_HOVER_ENTER:
Log.d("FloatingTouch", "ACTION_HOVER_ENTER" );
return true;
case MotionEvent.ACTION_HOVER_MOVE:
Log.d("FloatingTouch", "ACTION_HOVER_MOVE" );
return true;
case MotionEvent.ACTION_HOVER_EXIT:
Log.d("FloatingTouch", "ACTION_HOVER_EXIT" );
break;
default:
break;
}
return false;
}
});
我错过了什么吗?也许一些许可?
答案 0 :(得分:4)
要使其发挥作用,您必须:
com.sec.android.airview.HOVER
添加新的意图过滤器:<intent-filter>
<action android:name="com.sec.android.airview.HOVER" />
</intent-filter>
onHoverListener
View
convertView.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
Log.d("ListAdapter", "Hover: " + item);
return false;
}
});
它会起作用。