0

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

1 に答える 1