iPaulPro / Android-ItemTouchHelper-Demo

Basic example of using ItemTouchHelper to add drag & drop and swipe-to-dismiss to RecyclerView.
Apache License 2.0
2.51k stars 499 forks source link

I tried it. ,but ...something wrong #38

Open Bob-liuboyu opened 8 years ago

Bob-liuboyu commented 8 years ago

when I deleted a item and scrolling screen,something wrong。。。。,I am a chinese boy, my English....

you can use those code ,try it,you will see it,thank you very much

public class MainActivity extends Activity { private RecyclerView mRecyclerView; private ItemTouchHelper mItemTouchHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

    RecyclerListAdapter adapter = new RecyclerListAdapter(this);
    mRecyclerView = (RecyclerView) findViewById(R.id.mRecyclerView);
    mRecyclerView.setHasFixedSize(true);
    mRecyclerView.setAdapter(adapter);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    ItemTouchHelper.Callback callback = new SimpleItemTouchHelperCallback(adapter);
    mItemTouchHelper = new ItemTouchHelper(callback);
    mItemTouchHelper.attachToRecyclerView(mRecyclerView);
}

}

public class RecyclerListAdapter extends RecyclerView.Adapter implements ItemTouchHelperAdapter {

private final List<String> mItems = new ArrayList<>();

public RecyclerListAdapter(Context context) {
    mItems.addAll(Arrays.asList(context.getResources().getStringArray(R.array.dummy_items)));
}

@Override
public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main, parent, false);
    return new ItemViewHolder(view);
}

@Override
public void onBindViewHolder(final ItemViewHolder holder, int position) {
    holder.textView.setText(mItems.get(position));
}

@Override
public void onItemDismiss(int position) {
    mItems.remove(position);
    notifyItemRemoved(position);
}

@Override
public boolean onItemMove(int fromPosition, int toPosition) {
    Collections.swap(mItems, fromPosition, toPosition);
    notifyItemMoved(fromPosition, toPosition);
    return true;
}

@Override
public int getItemCount() {
    return mItems.size();
}

/**
 * Simple example of a view holder that implements {@link ItemTouchHelperViewHolder} and has a
 * "handle" view that initiates a drag event when touched.
 */
public static class ItemViewHolder extends RecyclerView.ViewHolder {

    public final TextView textView;
    public final ImageView handleView;

    public ItemViewHolder(View itemView) {
        super(itemView);
        textView = (TextView) itemView.findViewById(R.id.text);
        handleView = (ImageView) itemView.findViewById(R.id.handle);
    }
}
maninwindow commented 8 years ago

@Bob-liuboyu I tried it too, it is running smoothly. What is your problem? Please paste the error message.

Bob-liuboyu commented 8 years ago

Happy to receive your mail,you can watch the video,you will see,

------------------ 原始邮件 ------------------ 发件人: "Alimjan";notifications@github.com; 发送时间: 2016年3月24日(星期四) 晚上6:01 收件人: "iPaulPro/Android-ItemTouchHelper-Demo"Android-ItemTouchHelper-Demo@noreply.github.com; 抄送: "伯羽君"545777678@qq.com; 主题: Re: [Android-ItemTouchHelper-Demo] I tried it. ,but ...somethingwrong (#38)

@Bob-liuboyu I tried it too, it is running smoothly. What is your problem? Please paste the error message.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub