0
드래그 앤 드롭으로 목록의 위치를 변경할 수있는 조각 (내비게이션 드로 이더) 내에서 내 cardviews를 만들고 싶습니다.Android 카드 뷰 끌어서 놓기로 위치 이동
내 레이아웃 파일 구조 :
FrameLayout{
LinearLayout{
cardview_1
card_view_2}}
드래그 앤 드롭으로 목록의 위치를 변경할 수있는 조각 (내비게이션 드로 이더) 내에서 내 cardviews를 만들고 싶습니다.Android 카드 뷰 끌어서 놓기로 위치 이동
내 레이아웃 파일 구조 :
FrameLayout{
LinearLayout{
cardview_1
card_view_2}}
가 recyclerView를 사용하여 루트보기로 cardView와 rowItemLayout.xml 또는 columnItemLayout.xml을합니다. 그런 다음과 같은 recyclerView의 기능을 사용하십시오.
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(createHelperCallback());
itemTouchHelper.attachToRecyclerView(recyclerView);
private ItemTouchHelper.Callback createHelperCallback() {
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN,
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
RecyclerView.ViewHolder target) {
moveItem(viewHolder.getAdapterPosition(), target.getAdapterPosition());
return true;
}
@Override
public void onSwiped(final RecyclerView.ViewHolder viewHolder, int swipeDir) {
deleteItem(viewHolder.getAdapterPosition());
}
};
return simpleItemTouchCallback;
}
private void moveItem(int oldPos, int newPos) {
ListItem item = (ListItem) listData.get(oldPos);
listData.remove(oldPos);
listData.add(newPos, item);
adapter.notifyItemMoved(oldPos, newPos);
}
private void deleteItem(final int position) {
listData.remove(position);
adapter.notifyItemRemoved(position);
}