AndroidのタッチイベントonScrollとonFlingは、特に区別が重要です。
多くの場合、Fling や Scroll などのタッチスクリーンのジェスチャー操作を使用すると、Scroll ジェスチャーによるブラウザーのスクロールやFling によるリーダーのページめくりなど、アプリのユーザー体験を大幅に向上させることができます。OnGestureListenerインターフェイスを使用していますが、WilliamはAndroidの公式ドキュメントを検索しましたが、関連する例を見つけることができませんでした。ジェスチャーではなく、イベントを使用してください。
まず、Androidのイベント処理の仕組みはListenerをベースにしており、onTouchListener.setOnKeyListener()などのメソッドでイベントのクラスにリスナーを追加し、今日タッチパネル関連のイベントを呼んでいる。第三に、Listenerは一般的にInterfaceとして提供され、そこには1つ以上の抽象的なメソッドが含まれており、それを実装することでonTouch()やonKey()などのイベントを完結させることができるのです。このように、ビューにイベントリスナーを設定し、抽象的なメソッドの一つを実装すると、ビューに特定のイベントがディスパッチされたときに、プログラムがコールバック関数で適切に応答することができます。
最も単純なTextView(実際にはADTで生成されたスケルトンと変わりません)を使って、簡単な例を見てみましょう。
01.
public
class
GestureTest
extends
Activity
implements
OnTouchListener{
02.
03.
@Override
04.
protected
void
onCreate(Bundle savedInstanceState) {
05.
super
.onCreate(savedInstanceState);
06.
setContentView(R.layout.main);
07.
<スパン
08.
// init TextView
09.
TextView tv = (TextView) findViewById(R.id.page);
10.
// set OnTouchListener on TextView
11.
tv.setOnTouchListener(
this
);
12.
// show some text
13.
tv.setText(R.string.text);
14.
}
15.
16.
@Override
17.
public
boolean
onTouch(View v, MotionEvent event) {
18.
Toast.makeText(
this
,
"onTouch"
, Toast.LENGTH_SHORT).show();
19.
return
false
;
20.
}
super
.onCreate(savedInstanceState);
06.
setContentView(R.layout.main);
07.
08.
<スパン
// init TextView
09.
TextView tv = (TextView) findViewById(R.id.page);
10.
// set OnTouchListener on TextView
11.
tv.setOnTouchListener(
this
);
12.
// show some text
13.
tv.setText(R.string.text);
14.
}
15.
16.
<スパン
@Override
17.
public
boolean
onTouch(View v, MotionEvent event) {
18.
Toast.makeText(
this
,
"onTouch"
, Toast.LENGTH_SHORT).show();
19.
return
false
;
20.
}
GestureTest クラスは OnTouchListener インターフェースを実装しているので、TextView インスタンス tv に onTouchListener を設定し、パラメータとして this を与えるだけです。 onTouch メソッドは OnTouchListener の抽象メソッドを実装しており、ここにユーザーが画面に触れたときに、今回行ったように警告メッセージを入力して応答するロジックを追加するだけでよいのです。
ここでは、MotionEvent の getAction() メソッドを使用して、ACTION_DOWN、ACTION_MOVE、ACTION_UP、ACTION_CANCEL などの Touch イベントの種類を取得できます。ACTION_DOWNはタッチスクリーンを押すこと、ACTION_MOVEはタッチスクリーンを押した後の力点の移動、ACTION_UPはタッチスクリーンを離すこと、ACTION_CANCELはユーザーによって直接トリガーされない(だから今日の文脈にはない)ことを意味します。ACTION_DOWNはタッチパネルを押すこと、ACTION_MOVEはタッチパネルを押した後の力点の移動、ACTION_UPはタッチパネルを離すこと、ACTION_CANCELはユーザーによって直接トリガーされるわけではない(だから今日の文脈にはない、ViewGroup.onInterceptTouchEvent(MotionEvent))ことを参照されたい。の助けを借りて
関連
-
メンバ関数fetch()のNULLでの呼び出し
-
原因:java.io.IOException。CreateProcess error=5, アクセス拒否されました。CreateProcess error=2, システムが指定されたファイルを見つけられませんでした。
-
X-Frame-Options'を'SAMEORIGIN'に設定しているため、フレーム内での表示を拒否された。
-
中に内部エラーが発生しました。「Javaツーリングの初期化」中に内部エラーが発生しました。
-
python ランタイムプロンプト WebDriverException: メッセージ geckodriver' 実行ファイルが PATH にある必要があります。
-
socket.gaierror: [Errno 8] nodenameまたはservnameが提供されない、またはわからない
-
[Python Basic] ValueError: 非キーワード引数は2つしか受け付けません。
-
listen tcp :8080: bind: 各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)を1つだけ使用することはできません。
-
Universal Recovery Masterの見つけ方と完全な削除方法
-
フロントエンドのhttpリクエストタイムアウトの概要について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
非静的フィールドへの静的参照はできない
-
エラーです。Cannot find module '@vue/cli-plugin-babel'.
-
ImportError.の解決方法 No module named git" エラーの解決方法
-
MySql エラー: java.sql.SQLException: ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセスが拒否されました。
-
pythonのpandas_datareaderパッケージの紹介
-
Rollup.js|solve the package react project error ReferenceError: process is not defined.
-
VSコードデバッグが開始できない
-
Qt はエラーを報告します: 未解決のオーバーロードされた関数型と const char 型のオペランドが無効です .
-
sql server の int から datetime への変換
-
オブジェクト[1]からnilオブジェクトを挿入しようとしました' Error