我有最简单的应用程序,我希望收到悬停事件,不幸的是,无论我尝试什么,我似乎都无法接收它们。我可以猜测其他地方正在接收它们并使用它们,但布局中只有两个视图,一个 RelativeLayout 容器和 TextView。将 RelativeLayout 更改为 LinearLayout 没有积极影响,在 TextView 实例上调用 setOnHoverListener 也没有。
我的应用程序针对 4.0.3 (API 15)。源代码与 SDK 源代码中提供的悬停示例几乎相同。它应该可以工作。我在过去见过它的工作。
如果有人能阐明我可能看不到的东西,或者对我能看到的东西有任何建议,我将不胜感激。
硬件:索尼 Xperia Sola
安卓版本:4.0.4
活动来源:
public class MainActivity extends Activity {
private TextView mMessageTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMessageTextView = (TextView) findViewById(R.id.message);
View container = findViewById(R.id.container);
container.setOnHoverListener(new View.OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_HOVER_ENTER:
mMessageTextView.setText("Entered: " + event.getX() + ":" + event.getY());
break;
case MotionEvent.ACTION_HOVER_MOVE:
mMessageTextView.setText("Move: " + event.getX() + ":" + event.getY());
break;
case MotionEvent.ACTION_HOVER_EXIT:
mMessageTextView.setText("Exit: " + event.getX() + ":" + event.getY());
break;
}
return false;
}
});
}
}