2015-09-17 3 views
0

Я хочу добавить новую строку в начало recycleView. это мой адаптер код:android-append element to top of recycleView

public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> { 
    private LayoutInflater inflater; 
    private List<Items> list; 

    public Adapter(Context context, List<Items> feedItemList) { 
     inflater = LayoutInflater.from(context); 
     this.list = feedItemList; 
    } 

    public void addtotop(List<Items> catItems) { 
     if (this.list == null) { 
      this.list = catItems; 
     } else { 
      this.list.addAll(0,catItems); 
     } 
     notifyItemInserted(list.size()); 
     notifyDataSetChanged(); 
    } 

    public void addItem(String s) { 
     List<Items> newitems = new ArrayList<>(); 
     Items item = new Items(); 
     item.setcomment(s.toString()); 
     addtotop(newitems); 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parrent, int i) { 
     View view = inflater.inflate(R.layout.comment_row, parrent, false); 
     MyViewHolder holder = new MyViewHolder(view); 
     return holder; 
    } 

    @Override 
    public void onBindViewHolder(MyViewHolder viewHolder, int position) { 
     Items item = list.get(position); 
     viewHolder.dates.setText(item.getdates()); 
    } 

Это не добавляет новую строку, пока я не прокручивать вниз немного и прокручивать снова, чтобы показать его.

Как добавить и показать строку сразу после ее добавления?

благодаря

+0

У меня была похожая ситуация, и я думаю, что я завелся того, чтобы использовать 'notifyItemRangeChanged' вместо' notifyDataSetChanged' – ieatacid

+0

что-то вроде 'notifyItemRangeChanged (0, list.size() - 1) ' – ieatacid

+0

Это работало для вас? – ieatacid

ответ

1

Если вы хотите добавить новую строку в верхней части RecycleView, пожалуйста, следуйте этот шаг:

  1. Reverse данные списка перед тем setAdapter: Collections.reverse (yourList);

  2. setAdapter для вашего RecycleView: yourRecycleView.setAdapter (yourAdapter);

Это все