2016-07-22 1 views
1

나는 문제에 직면 해있다. 나는 recyclerview로 일하고있다. 목록 게시물이 업데이트되도록하고 싶습니다. 사용자가 아래로 스크롤하고 왼쪽으로 스크롤하면 프로그램은 게시물 삭제 기능을 호출합니다. 그리고 오른쪽으로 스크롤하여 프로그램은 포스트 기능 업데이트를 호출합니다. 나는 아래에 코드를 썼다. 어떻게 할 수 있는지 예를 들어 설명해 주시겠습니까? 나는이 기능들을 썼지 만 나는 실패했다.recyclerview에서 아래로, 위로, 오른쪽, 왼쪽으로 스크롤 한 후 업데이트, 삭제, 게시하는 방법

CustomListAdapterForPostOrga 주요 기능에

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(); 
      } 
     }); 

    } 

. 도와주세요.

답변

0

onscrolled 콜백에서 dx와 dy를가집니다. dy> 0 목록이 아래로 스크롤되고 dy가 < 인 경우 스크롤 업됩니다. dx와 동일, 축이 다르다.