0

Я хочу реализовать загрузку большей функциональности внутри моего gridview. Я пробовал некоторые строки кода для него, как с помощью addOnScrollListener, но не звонил, когда я пришел в нижний список.
Пожалуйста, найдите мой код, который я попытался реализовать для загрузки больше функциональности, но не получая ожидаемого результата.
Staggered Gridview (Recycleview) с загрузкой большей функциональности внутри NestedScrollView

MY_STRAGGED_RECYCLIVIEW.addOnScrollListener(new RecyclerView.OnScrollListener() { 
        @Override 
        public void onScrolled(RecyclerView recyclerView, 
              int dx, int dy) { 
         super.onScrolled(recyclerView, dx, dy); 

         totalItemCount = staggeredGridLayoutManager.getItemCount(); 
         lastVisibleItem = staggeredGridLayoutManager 
           .findLastCompletelyVisibleItemPositions(null)[0]; 

         if (!loading && totalItemCount <= (lastVisibleItem + visibleThreshold)) { 
          // End has been reached 
          // Do something 
          System.out.println("I amm here dd "); 

          loading = true; 
         } 
        } 
       }); 

В моем коде выше System.out не получает печать ...

Я попробовал другой слушатель для stragged GridView, который setOnScrollChangeListener, но это тоже не работает

MY_STRAGGED_RECYCLIVIEW.setOnScrollChangeListener(new View.OnScrollChangeListener() { 
      @Override 
      public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { 
       System.out.println("I amm here fffffffffff "); 

      } 
     }); 

Такая же проблема возникает с этим слушателем, не получая печатать мою System.out

На дополнительной вещи, которые я попробовал в моем adapter классе внутри onBindViewHolder метода, который

if(getCount()==position) 
{ 
////for getting the last item of the recycleview 
} 

Приведенный выше код также не working..Please помочь мне замкнуть от этой проблемы .. Спасибо :)



@Abbas пожалуйста, проверьте мой адаптер код ниже

public class StraggredView extends RecyclerView.Adapter<StraggredView.ViewHolder> { 

    private List<Content> mDataSet; 
    private Context ctx; 

    public StraggredView(Context context, List<Content> arrList) { 
     ctx = context; 
     mDataSet = arrList; 

    } 

    @Override 
    public StraggredView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid, parent, false); 
     return new ViewHolder(view); 

    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, final int position) { 


     if(getItemCount()==position) 
     { 
      //// I AM NOT GETTING IT AT THE BOTTOM... IT INVOKED AS THE ADAPTER IS CALLED FIRST TIME...LOOK AT IT 
     } 

     if (mDataSet.get(position).getContentImage() == null || mDataSet.get(position).getContentImage().isEmpty()) { 

      Glide.with(ctx).load(R.drawable.no_content) 
        // .override(screenWidth/2, Utils.dpToPx(height)) 
        .into(holder.imgContent); 
     } else { 
      Glide.with(ctx).load(mDataSet.get(position).getContentImage()) 
        // .override(screenWidth/2, Utils.dpToPx(height)) 
        // .centerCrop() 
        //.transform(new CircleTransform()) 
        .into(holder.imgContent); 
     } 

     holder.imgContent.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (mDataSet.get(position).getContentImage() != null 
         || !mDataSet.get(position).getContentImage().isEmpty()) { 
        FragmentActivity activity = (FragmentActivity) (ctx); 
        FragmentManager fm = activity.getSupportFragmentManager(); 
        FullScreenFragment dialog = FullScreenFragment.newInstance(
          mDataSet.get(position).getContentImage()); 
        dialog.show(fm, "dialog"); 
       } 
      } 
     }); 

    } 

    @Override 
    public int getItemCount() { 
     return this.mDataSet.size(); 
    } 

    public class ViewHolder extends RecyclerView.ViewHolder { 
     public ImageView imgContent; 

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

      imgContent = (ImageView) itemView.findViewById(R.id.imgContent); 

     } 


    } 

} 
+0

вы можете использовать эту ссылку: http://stackoverflow.com/questions/8664935/android-loading-data-like-facebook-and-twitter –

+0

@AmitRanjan. . Я пробовал ссылку выше, она также не работает в случае stragged gridview –

+0

вы видите этот код: http://stackoverflow.com/questions/16851934/android-onscrolllistener-for-staggered-grid-view –

ответ

0

На самом деле я был с помощью NestedScrollView который был родителем view моего Staggered recycleview .Therefore addOnScrollListener слушателя и setOnScrollChangeListener не работал в нем ..
я использовал setOnScrollChangeListener в NestedScrollView и он работал отлично. Проверьте мое решение ниже для него: -

NestedScrollView myNestedScroll= (NestedScrollView) findViewById(R.id.myNestedScroll); 

myNestedScroll.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { 
    @Override 
    public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { 

     if (scrollY > oldScrollY) { 
      Log.i(TAG, "Scroll DOWN"); 
     } 
     if (scrollY < oldScrollY) { 
      Log.i(TAG, "Scroll UP"); 
     } 

     if (scrollY == 0) { 
      Log.i(TAG, "TOP SCROLL"); 
     } 

     if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) { 
      Log.i(TAG, "BOTTOM SCROLL"); 
     } 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^