这是我第一次使用在线Recyclerview。
我有一些问题:
1.如何区分向上滚动和向下滚动
2.如何通过向上滚动来更新我的列表,同时不要丢失我的其他项目
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 :(得分:0)
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
内部方法修改了您在适配器中使用的数据源,然后调用notifyItemInserted
。文件。
请参阅我的第二点。它不应该导致任何滚动。