問題タブ [itemtouchhelper]
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 - ItemTouchHelper - ジャンプした最初の行の後にドロップが強制されます
私は ItemTouchHelper と ItemTouchHelper.SimpleCallback を使用して、ユーザーが垂直リストのリサイクラー ビューを並べ替えられるようにしています。
ドラッグアンドドロップは機能しますが、ドラッグされたセルから指を離していなくても、最初にジャンプした行の後にドロップが強制されます。
以下の SimpleCallback を見つけてください:
android - ItemTouchHelper とカーソルでドラッグ アンド ドロップを実装する方法
ItemTouchHelper を使用してノート アプリにドラッグ アンド ドロップ機能を実装しようとしましたが、カーソルを操作する方法を理解するのに苦労しています。現在、カーソルローダーとコンテンツプロバイダーを使用してデータベースから保存されたメモデータを取得しています。アダプターは、示されているように、返されたカーソルからデータを受け取ります。
私が抱えている問題は、リスト内の移動したアイテムをドラッグ アンド ドロップしたときにその位置を追跡する方法がわからないことです。カーソル内の行の順序を変更できません。アダプタのデータ ソースがリストである例だけを見てきました。カーソル データを Note オブジェクトのリストにコピーして、ドラッグ アンド ドロップによる変更を反映するようにカーソル データを再配置することを検討しましたが、これでは、カーソルとカーソル ローダーを使用することで得られるすべてが無効になるようです。また、カーソルローダーがロードを完了すると、元の順序ですべての結果を含む新しいカーソルが返され、それに応じてアダプターが読み込まれるため、新しいリストが失われた場合に順序に加えられた変更はすべて失われます。
誰かがこれを行う方法を知っていますか、それともカーソルとローダーを使用してこれを完全に間違った方法で行っていますか? どんな助けでも大歓迎です。ありがとう!
java - 左から右へのスワイプのみに ItemtouchHelper を制限する方法
こんにちは、私はリサイクラー ビューを使用しており、ITEMTOUCHHELPER を適用しています。ロジックを適用して(direction == ItemTouchHelper.LEFT)
アイテムを削除します。これらはすべて正しく機能します。
しかし、右側をスワイプしてから左側をスワイプすると。dX 値 >0 を与えます。これは、右側でスワイプが行われることを意味します。
アイテムを削除しても問題ありません。そのままにしてもう一度スワイプすると、この奇妙な動作が始まります。
左側から複数回スワイプすると、dX<0 という意味になり、再び機能し始めます。
これが私の実装です
これは、左にスワイプしたときのログ猫のスニペットですが、 dX>0が得られます
1行の問題
左側をスワイプすると dX >0
質問
この奇妙な動作が発生するのはなぜですか? アプリがぶら下がっているように感じますが、ぶら下がっていません左にスワイプしても右側にスワイプしています。
android - notifyItemChanged がビューを更新しない
まず、これに一日中取り組みましたが、何もできませんでした。RecyclerView
を使用するアダプターを持っていRecyclerView
ます SortedList
。TouchHelper
コールバッククラスで実装してみました:
これがTouchHelperの初期化です
私のアダプターはインターフェースを実装していますOnItemChangeListener
MyViewHolder
は状態を読み取り、状態になるとTimerHolder.TIMER_PENDING_DELETE
ビューの残りの部分を非表示にし、元に戻すボタンのあるインターフェイスを表示します。しかし、ビューをスクロールアウトして再度スクロールするまで、これは起こりません。私が欠けているものはありますか?
リンク
android - NestedScrollView の RecyclerView を使用した ItemTouchHelper: ドラッグ スクロールが機能しない
この記事で説明されているように ItemTouchHelper を実装しました: https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf#.k7xm7amxi
RecyclerView が CoordinatorLayout の子である場合、すべて正常に機能します。
ただし、RecyclerView が CoordinatorLayout の NestedScrollView の子である場合、ドラッグ スクロールは機能しなくなります。アイテムをドラッグして画面の上部または下部に移動すると、RecyclerView が NestedScrollView の子でない場合のようにスクロールしません。
何か案は?
android - Android - ItemTouchHelper.Callback を使用した RecyclerView のドラッグ
私は現在、小さな Android モジュールに取り組んでおり、おそらく誰かが解決できる問題に直面しています。カレンダーを作成し、ユーザーが 1) 開始日をクリックして日付範囲を選択できるようにする必要があります (これにより、デフォルトで 2 日間の範囲が作成されます)。次に、2) 1 つの範囲の境界線に触れてドラッグし、それを増減させます。範囲。
現在、 RecyclerView と GridLayoutManagerを使用して、行ごとに 7 つの項目 (日) を持つ多くの行 (すべての週) を持つすべてのカレンダー日セルを作成しました。次に、RecyclerView ItemTouchHelper ( https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.html )と ItemTouchHelper.Callback ( https://developer.android.com/ reference/android/support/v7/widget/helper/ItemTouchHelper.Callback.html )を使用して、ドラッグ & ドロップ機能を完成させます。私のアプローチは、これらのヘルパーが提供するドラッグ&ドロップ検出を使用することでした ( https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf#.ib8r012gcをご覧ください)。)1つのアイテムを移動せず、必要なタッチ+ドラッグ+ドロップジェスチャーのみを検出するように変更します。デフォルトのドラッグ アニメーションを削除し (ItemTouchHelper onDraw/onDrawOver をオーバーライド)、ItemTouchHelper.Callback コールバックを使用してドラッグの動きを管理することで (アダプター アイテムを常に同じ位置に配置する必要があるため、アダプター アイテムを交換せずに) 機能を正しく完了しました。すべて正常に動作しますが、ドラッグ検出が期待どおりに機能しないため、問題に直面しています。説明してみます:特定のセルの中心でドラッグ移動を開始し、その左側のセルに移動すると、中心に到達するまでドラッグ移動はトリガーされません。(ドラッグの動きを開始したのと同じ位置) 左のセルの。別のセルに到達したらすぐにドラッグを検出する必要があるため、これは問題です (指が新しいセルの境界内にある場合、ドラッグがトリガーされるはずです)。別の例として、セルの左端でドラッグを開始すると、別のセルの左端に到達するまでドラッグはトリガーされません。
今、私は ItemTouchHelper.Callback.chooseDropTarget メソッドで少し遊んで、指が新しいセルに入るとすぐにドロップターゲットを手動で選択しようとしていますが、うまくいきません。受け取った x、y 座標が何かおかしいと思います (ただし、保証はできません)。
いくつかのコード例が非常に役立つことはわかっていますが、プライベートで保護されたリポジトリに属しているため、貼り付けることができません:(
誰でも私に提供できる助けは本当にありがたいです. そしてもちろん、私はできる限りの情報を提供するために、このトピックを保留しようとします. また、範囲の境界を移動するために必要な「タッチ+移動+上」の動きを得るために、新しいさまざまなアプローチと提案を考慮します:)
すべてのスタック オーバーフロー コミュニティに感謝します。