問題タブ [android-event]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - View.onTouchEventは、ACTION_DOWNイベントのみを登録します
カスタムを実装しTextView
ていて、ビューがタッチされたときに何らかのアクションを実行したいと思います。このonTouchEvent
方法では、ビューを使用せずにすべてのタッチを使用できると考えましたsetOnTouchListener
(アクティビティではなく、ビュー内ですべての作業を実行しようとしているため、移植可能です)が、登録されているタッチイベントはACTION_DOWN
です。OnTouchListener
これを使用してアクティビティにを設定すると、すべてのタッチイベントが取得されますが、取得されonTouchEvent
ません。
なぜこれが当てはまるのか誰もが知っていますか、または誰かが私に使用を伴わない解決策を提供できますかsetOnTouchListener
(実装アクティビティが独自のリスナーを設定するのを妨げるでしょう)?
android - 子がfalseを返した場合、親ビューにMotionEventsを想定させます
異常な方法でイベント処理を必要とするアプリケーションがあります。
私の質問では、まず、Androidの現在のイベント処理システムが私に合わないという簡単なケースについて説明します。
追加されたすべてのビューがMATCH_PARENTXMATCH_PARENT(PageViewと呼びます)であるFrameLayout(これからViewSwiperと呼びます)があるとすると、実際のビューを変換して方向に基づいて置き換えることでイベントを処理します。移動の。このコンポーネントはすでに実行しており、正しく機能しています(アニメーションを使用してビューをスワイプします)。
しかし、問題はその上に追加したPageViewにあります。onTouchEventでfalseを返すImageViewの場合、ViewSwiperがイベントを処理し、別のPageViewを画面に表示させますが、その上にScrollViewを追加すると、イベントはScrollによって消費され、ViewSwiperはPageViewを置き換える機会がありません。
そこで、親がScrollViewのfalse onTouchEventを返すと、それがイベントであると見なすことができることがわかりました。これをテストするために、ScrollViewのこのサブクラスを作成しました。
しかし、falseを返すと、親にディスパッチされるイベントがさらに作成されますが、垂直スクロールにはこれらのイベントが必要なので、ユーザーがHORIZONTALを移動している場合にのみ、falseを返すという考えがあります。これが私のコードのようです。
PS:MovementTrackerは、いくつかのイベントの後にtrack()でtrueを返し、ユーザーがどちらの方向に移動しているかを通知します。
ただし、その場合、ScrollViewは最初のイベントでtrueを返すため、イベントを受信し続けます。
子がfalseを返したときにViewSwiperでイベントを処理する方法に関するアイデア(いくつかのtrueが返された場合でも)。
PS:必要に応じて、これについてさらに情報を提供し、さまざまな解決策も受け入れることができます。
答えに基づいて、私は次のことを試みました:
まだ何もありません。
android - イベントから呼び出されたときにview.startAnimation(animation)が機能しないのはなぜですか?
ダミーのTranslateAnimationを使用していくつかのレイアウトプロパティを設定するカスタムビューを作成しました。Interpolatorを使用して高さを計算し、TranslateAnimationのapplyTransformation()メソッド内のビューに適用します。
アクティビティからアニメーションをトリガーすると、これは非常にうまく機能します。
タッチイベントを使用して同じことを行おうとすると、何も起こりません。
私のexpandメソッドは次のようになります。
アクティビティが作成されると、Logcatは「onCreate()」を表示しますタッチイベント内は「onTouch()」を表示しますexpand()メソッド内はLogcatは「Expand!」を表示します -アクティビティまたはイベントから呼び出されます。
メソッドapplyTransformation()の内部では、Logcatは「applyTransformation()」を示しています-しかし!Expand()がonCreate()から呼び出された場合のみ。イベントからアニメーションを開始しようとして失敗しました。
これは、ある種のスレッドの問題のように私には見えます。これでいいの?足りないものはありますか?他の投稿からわかる限り、イベントからアニメーションを開始すると問題なく動作するはずです...
前もって感謝します!
android - onTouchEvent が 2 回実行される
2回実行される理由と、onTouchEvent
1回だけ実行するように設定するにはどうすればよいですか? 説明が見つかりませんでした。ありがとう。
android - スクロール時のイベント
ScrollView (垂直または水平) で、スクロールアニメーションがいつ終了したかを知る方法は?
SmoothScrollBy または SmoothScrollTo でアニメーションを開始します
android - センサーデータの待ち方
開始時にセンサーリスナーを開始するクラスがあります。このリスナーは、イベントがトリガーされると、最新のセンサー値を変数に書き込みます。クラスはいくつかのロジックを実行し、ある時点でこの変数をチェックし、値に応じて処理を進めます。
私の問題は、変数が読み取られたときに値があるという保証がないことです.Androidセンサーリスナーは、センサー値が変化したときにのみイベントをトリガーします(開始するとすぐにイベントをトリガーするとは限りません)。
したがって、アプリがイベントがトリガーされるのを待って、データが機能するようにする必要があります (できればタイムアウトを使用して、無期限に待機しないようにします)。
私の質問は、この待機を実装する最良の方法は何ですか? 続行する前に X ミリ秒ごとに値をチェックするハンドラーが必要ですか? リスナーとハンドラーの間で何らかのメッセージをやり取りして、データがいつ書き込まれたかを通知し、再開できるようにする必要がありますか? より良い他のオプションはありますか?
編集:指摘する必要があります、クラス ロジックは UI スレッドで実行されます。
android - リスト データが変更されたことを B アクティビティから A に通知するにはどうすればよいですか?
私は Activity を持っていItemList.java
ます。ユーザーがアイテムをクリックすると、新しいアクティビティが開始されますItemDetailActivity.java
。
私がやりたいことは、ユーザーが ItemDetailActivity.java のボタンを押すと、ItemList.java
リスト項目を更新するように指示する必要があるということです。myListAdapter.notifyDataSetChanged()
リストが更新されることはわかっています。ItemList.java
しかし、いつデータを変更するかを知るにはどうすればよいでしょうか。
静的メソッドや変数を使用したくありません。ハンドラーの使用方法は知っていますが、ハンドラーを他のアクティビティに渡す方法がわかりません。
私が考えているのは、独自のイベント/リスナーを作成してリストに関連付けることです。そのため、イベントが発生したら、リストを変更します。ブロードキャスト レシーバーは役に立ちますか?
android - アクティビティが破棄されるまで一度だけ呼び出される Android イベントはどれですか?
私は単一の答えを探しています(しかし、間違った質問をしているかもしれません)
質問 - アクティビティが破棄されるまで、TOTAL 回だけ呼び出されるイベントはありますか?
ユーザーが電話を横向きに回転させると、oncreate と onstart の両方が呼び出され、ある種のリロードが発生するためです。
1回しか実行されない行動を入れることができるイベントを探しています(アクティビティが強制終了されるまで)
前もって感謝します
android - 戻るボタンはアクティビティを再開します
ユーザーが私のアプリの戻るボタンを押すことが数回ありますが、残念ながら彼は外に出ません。アクティビティはスライドしますが、その背後にはまったく同じものがあります...どうしてそれが可能ですか?どうすればそれを回避できますか?onBackPressed()メソッドに何かを実装する必要がありますか?アドバイスありがとうございます。
android - アプリがデバイスで実行されているときに、onTouchEvent メソッドで Click イベントと touch イベントを区別する方法は?
Activty の onTouchEvent メソッドをオーバーライドします。この方法では、アクションを聞きたいと思います。タッチとクリックで、2 つの異なる反応を与えます。問題は、エミュレーターでアプリをテストすると、すべて正常に動作することです。しかし、デバイスにはありません。デバイスの場合と同様に、ボタンをクリックするだけで、ACTION_DOWN と ACTION_UP だけでなく、ACTION_DOWN の後にいくつかの ACTION_MOVE シグナルを受け取ります。