我有最简单的应用程序,我希望接收悬停事件,不幸的是,无论我尝试什么,我似乎无法接收它们。我可以猜到其他地方正在接收它们并消耗它们但是布局中只有两个视图,一个RelativeLayout容器和TextView。将RelativeLayout更改为LinearLayout没有任何积极影响,也不会在TextView实例上调用setOnHoverListener。
我的应用程序针对4.0.3(API 15)。源与SDK源中提供的悬停示例几乎相同。它应该正常工作。我以前见过它。
如果有人可以了解我可能没有看到的内容,或者对我可以看到的事情有任何建议,那将非常感激。
硬件: Sony Xperia Sola
Android版: 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;
}
});
}
}
答案 0 :(得分:0)
老问题,但无论如何。我相信这发生在你身上,因为一些儿童观点会拦截来自父母的悬停状态。
其他原因可能是您未将容器声明为可关注