問題タブ [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.

0 投票する
3 に答える
5374 参照

android - RecyclerView から ItemTouchHelper を切り離す

私は を持っRecyclerViewていItemTouchHelperます。すべてがうまく機能しますが、リストを再作成せずに をItemTouchHelperから切り離す方法があるかどうか疑問に思っていますか? RecyclerView楽しみのために、これは私が添付するために使用しているコードです:

onResume()理想的には、これが住んでいるアクティビティの好みを確認し、それに基づいてRecyclerView切り離したいと思います。ItemTouchHelper

0 投票する
1 に答える
1510 参照

android - RecyclerView の行を部分的に左右にスワイプ

私はこのようなものを作成しましたRecyclerView ItemTouchHelper-

}

しかし、これは行全体を画面からスワイプしています。行の 25% だけを移動させたいのです。前進するためのヒントを教えてください..

0 投票する
1 に答える
1159 参照

android - ItemTouchHelper を使用した NestedScrollView の最新の RecyclerView ネスト

RecyclerViewの最新の更新により、 NestedScrollView 内で wrap_content を実行できるようになりました。ただし、私には合わない動作がいくつかあり、答えを探しています。

問題点 1:ラッピングで空白が考慮されない。これは、RecyclerView コンテンツの後に空のスペースがある場合、ドラッグ アニメーションによって、次に示すように画面の中央で項目がクリップされることを意味します。

ここに画像の説明を入力

UPDATE : 問題 1 を解決しました。RecyclerView に layout_weight="1" 属性を追加する必要がありました。

問題 2:問題 1 と同様に、アイテムを削除すると、RecyclerView がアニメーションの開始時にすぐに折り返され、アニメーションが次のようにクリップされます。

ここに画像の説明を入力

更新: 問題 2 はまだ解決されていませんが、以前ほど目立たなくなりました。アイテムが削除されると、アイテムがビュー ポートにクリップされ、アニメーションがビュー ポートの下から引き上げられて、画面が新しい高さにジャンプするように見えます。

問題 3:新しいアイテムを追加するときに、ScrollView の最後までスクロールしたい。ただし、追加イベントで次のコードを実行すると、スクロールはすぐにスクロールビューの現在の末尾にジャンプします。「アイテムが挿入された後」のコールバックはありますか?

ここに画像の説明を入力

更新: 問題 3 はまだ解決されていませんが、次のように順序を逆にする回避策を見つけました。

そして、新しいアイテムを追加するときの以下のコード。このように、スクロールは高さに関係なく常に機能します。


引用した記事:

RecyclerView はその子をアニメーション化しますが、それ自体の境界の変更をアニメーション化しないことに注意してください。RecyclerView の境界が変化するときにアニメーション化する場合は、Transition API を使用できます。

境界をアニメーション化する必要はありませんが、スナップしてビューポートを埋める必要があります (この場合、リサイクラービューの上にいくつかの静的ビューがあるため、match_parent を使用できません)。したがって、問題1を解決します。

境界が変更される前に何かをしたい。例: on remove item 削除をアニメーション化してから、バインドされた変更を適用します。したがって、問題 2を解決します。

逆に、境界がすでに変更されているときにいくつかのことをしたいと思います。例: 新しいアイテムを追加すると、最初に新しい境界が適用され、次にスクロール アニメーションが開始されます。したがって、問題 3を解決します。

どうすればこれを達成できますか?

0 投票する
1 に答える
1001 参照

android - RecyclerView with ItemTouchHelper 部分のみスワイプ可能

次のようなアイテムを含む recyclerview リストがあります。

リスト項目

赤い四角形は左にスワイプ (ドラッグ アンド ドロップ アウト) することしかできず、緑の四角形は右にスワイプすることしかできません。要素がスワイプされると、次のようなオプションが表示され、画像が表示されます。

-左スワイプ:

左スワイプ

-右にスワイプ: 右にスワイプ

レイアウト アイテムの外観は次のとおりです。

私はこれを実行しようとしてItemTouchHelper.Callbackおり、メソッドをオーバーライドしonChildDrawて正しいアニメーションを作成しています。しかし、四角がスワイプされた状態で保持できず、正しいアニメーションを作成します。これを達成する別の方法はありますか?

0 投票する
0 に答える
806 参照

android - ItemTouchHelper を使用した RecyclerView での CardView 半スワイプ

ユーザーがスワイプしたときに、CardView の下にユーザー メニューを表示したい。しかし、スワイプ中にcardViewを途中で停止させたい。

MyItemTocuchHelper クラスを作成し、 onChildDraw() メソッドをオーバーライドしました。

これが行うことは、スワイプアニメーションが特定のポイントで停止することです(これをやりたかったのです)。ただし、このビューをスワイプすると、スワイプ距離が自動的に画面幅に設定されます。つまり、スワイプして戻そうとすると、最初は dX = 1038.0 で onChildDraw() メソッドが呼び出され、スワイプを続けるとその値が減少します。したがって、dX が mWidth の値に達する前に、アニメーションは再生されません。dX; の値が mWidth の値まで減少する限り、アニメーションは再び開始されます。

たとえばswipedDXを特定の値に設定する方法はありますか? またはそれを回避する方法はありますか?私が望むのは、ユーザーがビューをスワイプし始めるとすぐにアニメーションを開始することです。

前もって感謝します

0 投票する
0 に答える
514 参照

android - Android RecyclerViewは位置(x、y)で一番下の子を見つけます

私のアクティビティには、ItemTouchHelper がアタッチされた RecyclerView があります。ItemTouchHelper にはオーバーライドされたメソッドがあります:

そのため、RecyclerView のビューはドラッグ可能です。

私の目的は、recyclerView を介して RecyclerView アイテムの 1 つをドラッグし、ドラッグされたビューの下にある View を取得できるようにすることです。だから、私はRecyclerView.findChildViewUnder(float x, float y)を使用しようとしました:「指定されたポイントの下の一番上のビューを見つけてください」。

しかし、そこで奇妙なことが起こっています。

特定のアイテムを元の位置の一番下 (Image1 のように) にドラッグすると、ご覧のとおり、findChildViewUnder() はそのドラッグされたビューの下にあるビューを返します (これが私の目的です)。

画像1

ただし、項目を元の位置 (Image2 のように) にドラッグすると、findChildViewUnder() はドラッグされたビューを返します (ただし、その下のビューは返しません)。

画像2

助言がありますか?ドラッグされたアイテムの下にあるビューを常に取得するにはどうすればよいですか?

0 投票する
0 に答える
477 参照

android - Android RecyclerView ItemTouchHelper コントロールのスワイプ領域

だから私はrecyclerviewを持っていて、itemTouchHelperを設定してitemView全体でスワイプを実行しています。私のitemViewにもスワイプする必要があるアイテムがあります。スワイプアニメーションを実行する特別な「スワイプレイアウト」を使用して、なんとか機能させることができました。

私の問題は、recyclerView itemView の子ビューをスワイプすると、親も同時にスワイプされることです。電話してみた

子ビューでは何も起こりません。itemViewの上半分をクリックした場合にのみビューをスワイプするように、(itemtouchhelperを介して)親スワイプ領域を制限する方法はありますか?

0 投票する
1 に答える
1084 参照

android - ItemTouchHelper.Callback を使用して水平リサイクラー ビューの境界を越えてアイテムをドラッグ アンド ドロップする方法は?

アイテムを水平のリサイクラービュー (リサイクラービューの境界内だけでなく) にドラッグしたいのですが、アイテムをドロップすると、アニメーションで新しい位置に移動します。ItemTouchHelper.Callback を使用してこれを達成する方法は?

0 投票する
1 に答える
3550 参照

android - RecyclerView ドラッグドロップ - ItemTouchHelper を使用 - ドラッグ中にスクロール速度を速く設定するには?

ドラッグ アンド ドロップ用にこのコードを試しました: https://github.com/iPaulPro/Android-ItemTouchHelper-Demo

ここにビデオがあります:https ://youtu.be/lMsv2jYpbi4

ドラッグ アンド ドロップ中のスクロールを高速化する方法はありますか?