Android RecyclerView move item to end of View
<p>I am displaying Items on a Android <code>RecyclerView</code>, and I would like to be able to select any item, and place it at then very end of the list. I know how to Add or Remove items, but I am looking for the cleanest way to achieve this.</p>

<p>If possible, I am also looking for an animation that would show this item flying over the others, when going down.</p>

<p>Here is my <code>adapter</code> :</p>

<pre><code>public class DiscoverViewAdapter extends RecyclerView.Adapter&lt;DiscoverViewAdapter.ViewHolder&gt; {

    private List&lt;DiscoveredUser&gt; _items;

    public DiscoverViewAdapter(List&lt;DiscoveredUser&gt; items) {
        this._items = items;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder
    {
        TextView userName;
        TextView userAge;
        TextView userDescription;

        public ViewHolder(View itemView)
        {
            super(itemView);
            userName = (TextView) itemView.findViewById(R.id.user_name);
            userAge = (TextView) itemView.findViewById(R.id.user_age);
            userDescription = (TextView) itemView.findViewById(R.id.user_description);
        }
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.user_discover_row, viewGroup, false);
        return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
        DiscoveredUser user = _items.get(i);

        viewHolder.userName.setText(user.getUsername());
        viewHolder.userAge.setText(Integer.toString(user.getAge()));
        viewHolder.userDescription.setText(user.getDescription());
    }

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

    public void remove(int position) {
        //_items.remove(position);
        //notifyItemRemoved(position);
    }

    public void add(DiscoveredUser user, int position) {
        _items.add(position, user);
        notifyItemInserted(position);
    }

    public void addMultiple(DiscoveredUser[] users){

        final int size = users.length;
        for (DiscoveredUser user : users) {
            _items.add(0, user);
        }
        notifyItemRangeInserted(0, size);
    }
}
</code></pre>