Je veux implémenter le chargement de plus de fonctionnalités dans mon gridview Staggered. J'ai essayé quelques lignes de code pour l'utiliser comme addOnScrollListener
mais n'a pas appelé quand je viens au fond de la liste.
S'il vous plaît trouver mon code que j'ai essayé d'implémenter le chargement plus de fonctionnalités mais n'obtenant pas le résultat attendu.
Quadrillage Gridview (Recycleview) avec charge plus de fonctionnalités à l'intérieur de la 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;
}
}
});
Dans mon code ci-dessus, System.out ne reçoit pas l'impression ...
J'ai essayé un autre auditeur pour le gridview stragged qui est setOnScrollChangeListener
, mais il est aussi ne fonctionne pas
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 ");
}
});
même problème se pose avec cet écouteur, ne pas avoir à imprimer mon System.out
Sur chose que j'ai essayé dans ma classe à l'intérieur adapter
la méthode onBindViewHolder
qui est
if(getCount()==position)
{
////for getting the last item of the recycleview
}
code ci-dessus est pas non plus working..Please me aider à court-circuiter de ce problème .. Merci :)
@Abbas s'il vous plaît vérifier le code de la carte ci-dessous
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);
}
}
}
vous pouvez utiliser ce lien: http://stackoverflow.com/questions/8664935/android-loading-data-like-facebook-and-twitter –
@AmitRanjan. .J'ai essayé le lien ci-dessus, il ne fonctionne pas non plus en cas de grille de grille –
pouvez-vous voir ce code: http://stackoverflow.com/questions/16851934/android-onscrolllistener-for-staggered-grid-view –