私はホバーイベントを受け取ることを期待する最も単純なアプリケーションを持っていますが、残念ながら、何を試しても、それらを受け取ることができないようです。他の場所でそれらを受信して消費していると推測できますが、レイアウトには、RelativeLayoutコンテナとTextViewの2つのビューしかありません。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;
}
});
}
}