Каждый раз, когда я использую RecylerView или что-либо еще для хранения других элементов, у меня возникает проблема, заключающаяся в том, что я не знаю, как перемещать и работать с ними.
Например, для перемещения таких элементов, как CardViews в RecylerView, лучшим или простым способом является использование java ItemTouchHelper
. Например:
ItemTouchHelper
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT, ItemTouchHelper.DOWN) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder dragged, @NonNull RecyclerView.ViewHolder target) {
int position_dragged = dragged.getAdapterPosition();
int position_target = target.getAdapterPosition();
c_TakeTimeObjects draggedObj = SelectedList.get(position_dragged);
c_TakeTimeObjects targetObj = SelectedList.get(position_target);
if(draggedObj.getbIsEditable() && targetObj.getbIsEditable()) {
Collections.swap(SelectedList, position_dragged, position_target);
mAdapter.notifyItemMoved(position_dragged, position_target);
}
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder swiped, int i) {
int position_swiped = swiped.getAdapterPosition();
c_TakeTimeObjects c_takeTimeObjects = SelectedList.get(position_swiped);
if(c_takeTimeObjects.getbIsEditable()){
SelectedList.remove(c_takeTimeObjects);
mAdapter.notifyItemRemoved(position_swiped);
}
}
});
В некоторых случаях это прекрасно работает, но как я могу самостоятельно построить такое поведение при перемещении или как реализовать такие вещи, как определение размера элемента на ощупь?
Например, у меня есть CardView внутри Recylerview, и как я могу изменить его размер (установить ширину и длину), касаясь элемента?
Я пытаюсь понять это движение и коснуться поведения.