2
私は閉じることができる表示を作成しようとしていますが、取り消すことができます。アイテムは、背景と前景がFrameView
の内部にあります。私はこのようなItemTouchHelper.Callback
でonChildDraw
をオーバーライドしています:onChildDrawは項目を点滅させます
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
float dX, float dY, int actionState, boolean isCurrentlyActive) {
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
if (viewHolder instanceof ItemViewHolder) {
ItemViewHolder holder = (ItemViewHolder) viewHolder;
holder.foreground.setTranslationX(dX);
}
} else {
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
}
すべてが動作しますが、私はこのようなユーザのアクションに基づいて、スワイプ操作を元に戻すことを試みる刚性:への実際のビューを戻すん
foreground.animate()
.translationX(0)
.setDuration(150);
ユーザーがその項目を再びスワイプしようとすると、背景が再び表示され、何らかの理由でonChildDrawが呼び出され、dXパラメータが画面の幅よりも大きくなります。アイテムをタップすると、1秒間の背景ビューが表示され、フォアグラウンドは通常は解除されます。これをどうすれば解決できますか?
問題を解決しましたか? –
回答を追加しました – tofiffe