現在SurfaceViewを使用してAndroidアプリを作成しています。
以前はActivityでSurfaceView(QuizView)を直接setContentViewして画面を表示していましたが、新たにmain.xmlにSurfaceViewを記載してActivityでsetContentView(R.layout.main)と書いたところ、SurfaceView(QuizView)でのonTouchEventが呼び出されなくなりました。
画面をタッチしたときの反応がなくなった以外は、表示など問題ありません。
MainActivity側のonTouchEventは呼び出されています。
SurfaceViewのコンストラクタでは「setFocusable(true)」「requestFocus()」を実行していますが、「hasFocus」の結果が常に「false」となっていることが原因なのでしょうか?
SurfaceViewでのonTouchEventが呼び出されるようにする方法を教えていただけませんでしょうか。
以下「main.xml」の記述内容です。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">
</LinearLayout><SurfaceView android:id="@+id/quizView" android:layout_width="match_parent" android:layout_height="match_parent"> </SurfaceView>
以下、「MainActivity.java」の記述内容の一部です。
setContentView(R.layout.main);
SurfaceView surfaceView = (SurfaceView)findViewById(R.id.quizView);
QuizView quizView = new QuizView(this, surfaceView);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/21 01:47