如何更新、删除,..在recyclerview中向下、向上、向右和向左滚动后发布



我遇到了一个问题。我在Recycerview工作。我想更新列表帖子当用户向下滚动和向左滚动时,程序会调用帖子删除功能。通过向右滚动,程序调用更新post函数。我在下面写了代码。你能举例说明我是如何做到这一点的吗?我写了这些函数,但我失败了。

用于PostOrga 的自定义列表适配器

public class CustomListAdapterForPostOrgan extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<Posts> post;
private int visibleThreshold = 5;
private int lastVisibleItem, totalItemCount;
private boolean loading;
private OnLoadMoreListener onLoadMoreListener;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();

     public CustomListAdapterForPostOrgan(Activity activity, List<Posts> post) {
    this.activity = activity;
    this.post = post;
   }

     public CustomListAdapterForPostOrgan(List<Posts> post, RecyclerView recyclerView) {
      this.post = post;
       if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
       final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView
            .getLayoutManager();

          recyclerView
            .addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrolled(RecyclerView recyclerView,
                                       int dx, int dy) {
                    super.onScrolled(recyclerView, dx, dy);
                    totalItemCount = linearLayoutManager.getItemCount();
                    lastVisibleItem = linearLayoutManager
                            .findLastVisibleItemPosition();
                    if (!loading
                            && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                        // End has been reached
                        // Do something
                        if (onLoadMoreListener != null) {
                            onLoadMoreListener.onLoadMore();
                        }
                        loading = true;
                    }
                }
            });
}}
public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener) {
    this.onLoadMoreListener = onLoadMoreListener;
}
///////////////////
@Override
public int getCount() {
    return post.size();
}
@Override
public Object getItem(int location) {
    return post.get(location);
}
@Override
public long getItemId(int position) {
    return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v=convertView;
    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.list_row_organ_news
                , null);

    if (imageLoader == null)
        imageLoader = AppController.getInstance().getImageLoader();
    NetworkImageView thumbNail = (NetworkImageView) convertView
            .findViewById(R.id.organ_news__avatar_show_thumbnail);
    TextView titr = (TextView) convertView.findViewById(R.id.txt_organ_news_list_organ);
    TextView year = (TextView) convertView.findViewById(R.id.txt_date_posts_organ);
    TextView fi = (TextView) convertView.findViewById(R.id.txt_cunter_for_organ_posts);
    // getting billionaires data for the row
    Posts m = post.get(position);
    // thumbnail image
    thumbNail.setImageUrl(m.getAvatar(), imageLoader);


    // Wealth Source
    year.setText("Wealth Source: " + String.valueOf(m.getPublish_at()));

    titr.setText(String.valueOf(m.getTitle()));
    // release year
    year.setText(String.valueOf(m.getPublish_at()));
    fi.setText(String.valueOf(m.getView_count()));
    return convertView;
}
   public static class ProgressViewHolder extends RecyclerView.ViewHolder {
    public ProgressBar progressBar;
    public ProgressViewHolder(View v) {
        super(v);
        progressBar = (ProgressBar) v.findViewById(R.id.progressBar1);
    }
}

主要功能:

private void handelpost(final List<Post> posts, Page pages) {
    if (pages.getCurrentPage() > 1) {
    } else {
        recycler_post.setLayoutManager(new LinearLayoutManager(this));
        final AdapterRcycelerViewPostOrgan
                madapter = new
                AdapterRcycelerViewPostOrgan(posts);
        recycler_post.setAdapter(madapter);
        recycler_post.setItemAnimator(new DefaultItemAnimator());
        madapter.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore() {
                posts.add(null);
                madapter.notifyItemInserted(posts.size() - 1);
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //   remove progress item
                        posts.remove(posts.size() - 1);
                        madapter.notifyItemRemoved(posts.size());
                        //add items one by one
                        int start = posts.size();
                        int end = start + 20;
                   /*     for (int i = start + 1; i <= end; i++) {
                            studentList.add(new Student("Student " + i, "AndroidStudent" + i + "@gmail.com"));
                            mAdapter.notifyItemInserted(studentList.size());
                        }*/
                   //     posts.set()
                        //or you can add all at once but do not forget to call mAdapter.notifyDataSetChanged();
                    }
                }, 2000);
                Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show();
            }
        });
    }

我想知道如何在自己的列表中执行此功能。请帮帮我。

在onScrolled回调中,您有dx和dy.如果dy>0列表正在向下滚动,如果dy<0正在向上滚动。与dx相同,只是轴不同

相关内容

  • 没有找到相关文章

最新更新