0

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

У меня есть несколько вопросов:

1.how можно выделить прокрутку вверх и прокрутите вниз

2.how я могу обновить свой список, используя прокрутку вверх и в то же время не потерять мой другие предметы

3.После обновления recyclerview, как я могу сохранить свою позицию и не вернуться на первое место?

Я написал эти коды для recyclerview.

CustomListAdapterForPostOrgan

public class AdapterRcycelerViewPersonalOrgan extends RecyclerView.Adapter<AdapterRcycelerViewPersonalOrgan.ViewHolder> { 
private List<User> itemsData; 
public AdapterRcycelerViewPersonalOrgan(List<User> itemsData) { 
    this.itemsData = itemsData; 
} 

// Create new views (invoked by the layout manager) 
@Override 
public AdapterRcycelerViewPersonalOrgan.ViewHolder onCreateViewHolder(ViewGroup parent, 
                     int viewType) { 
    // create a new view 
    View itemLayoutView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.list_row_member_organ, null); 

    // create ViewHolder 

    ViewHolder viewHolder = new ViewHolder(itemLayoutView); 
    return viewHolder; 
} 

// Replace the contents of a view (invoked by the layout manager) 
@Override 
public void onBindViewHolder(ViewHolder viewHolder, int position) { 
    ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 
    // - get data from your itemsData at this position 
    // - replace the contents of the view with that itemsData 
    if (imageLoader == null) 
     imageLoader = AppController.getInstance().getImageLoader(); 

    viewHolder.member__avatar_show_thumbnail.setImageUrl(itemsData.get(position).getAvatar(),imageLoader); 
    viewHolder.member_name.setText(itemsData.get(position).getFirst_name()+" "+itemsData.get(position).getLast_name()); 


} 

// inner class to hold a reference to each item of RecyclerView 
public static class ViewHolder extends RecyclerView.ViewHolder { 

public NetworkImageView member__avatar_show_thumbnail; 

public TextView member_name; 

    public ViewHolder(View itemLayoutView) { 
     super(itemLayoutView); 

     member__avatar_show_thumbnail = (NetworkImageView) itemLayoutView.findViewById(R.id.member__avatar_show_thumbnail); 
     member_name=(TextView) itemLayoutView.findViewById(R.id.txt_member_name_list_member_organ) ; 

    } 
} 


// Return the size of your itemsData (invoked by the layout manager) 
@Override 
public int getItemCount() { 
    return itemsData.size(); 
    } 
} 

и после

private void memberorganhandel(List<User> userList, Page pages) { 

    if(pages.getCurrentPage()>1){ 

    }else{ 

     recyclerview_personal_organ .setLayoutManager(new LinearLayoutManager(this)); 
     AdapterRcycelerViewPersonalOrgan 
       madapter=new 
       AdapterRcycelerViewPersonalOrgan(userList); 
     recyclerview_personal_organ .setAdapter(madapter); 
     recyclerview_personal_organ .setItemAnimator(new DefaultItemAnimator()); 
    } 
} 

ответ

0
  • Как я могу dinstinguish прокрутки вверх и прокрутки вниз
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     //check if dy > 0 then it's scrolling down, otherwise - up 
    } 
}); 
  • Как я могу обновить свой список с помощью прокрутки вверх и в то же время не потерять мои другие детали

Внутри onScrolled метода из моего первого кода snippent изменить источник данных, которые вы используете в вашем адаптере, и затем позвоните notifyItemInserted. Док.

  • После обновления recyclerview, как я могу сохранить свою позицию и не возвращаться на первое место?

См. Мой второй пункт. Это не должно вызывать прокрутки.

+0

Где я должен назвать эту функцию? Я пишу эту функцию в oncreate, но она не работает –