Je suis coincé avec un problème au sujet de changer la taille de recycleur basé sur ses articles totaux. Ce que j’ai essayé, c’est d’utiliser Layout Param comme ceci:
ViewGroup.LayoutParams params = myRecyclerView.getLayoutParams();
params.height = itemHeight * numberOfItem;
myRecyclerView.requestLayout();
ou
ViewGroup.LayoutParams params = new RecyclerView.LayoutParams(..WRAP_CONTENT, ...WRAP_CONTENT);;
params.height = itemHeight * numberOfItem;
myRecyclerView..setLayoutParams(params);
Mais ça n'a pas marché. Comment puis-je le faire ? Aidez-moi, s'il vous plaît !
Vous devez utiliser LayoutParams de la vue parent dans setLayoutParams (params).
Par exemple:
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
>
<Android.support.v7.widget.RecyclerView
Android:id="@+id/images"
Android:layout_width="wrap_content"
Android:layout_height="360dp"
>
</Android.support.v7.widget.RecyclerView>
</Relativelayout>
Changez LayoutParams dans le code.
RelativeLayout.LayoutParams lp =
new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 500);
recyclerView.setLayoutParams(lp);
J'ai essayé ça. Ça a marché. Peut être une aide.
@Override
public void onBindViewHolder(FeedListRowHolder feedListRowHolder, int i) {
//this change height of rcv
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.height =80; //height recycleviewer
feedListRowHolder.itemView.setLayoutParams(params);
FeedItem feedItem = feedItemList.get(i);
Picasso.with(mContext).load(feedItem.getThumbnail())
.error(R.drawable.placeholder)
.placeholder(R.drawable.placeholder)
.into(feedListRowHolder.thumbnail);
feedListRowHolder.title.setText(Html.fromHtml(feedItem.getTitle()));
feedListRowHolder.itemView.setActivated(selectedItems.get(i, false));
feedListRowHolder.setClickListener(new FeedListRowHolder.ClickListener() {
public void onClick(View v, int pos, boolean isLongClick) {
if (isLongClick) {
// View v at position pos is long-clicked.
String poslx = pos + "";
Toast.makeText(mContext, "longclick " + poslx, Toast.LENGTH_SHORT).show();
} else {
// View v at position pos is clicked.
String possx = pos + "";
Toast.makeText(mContext, "shortclick " + possx, Toast.LENGTH_SHORT).show();
toggleSelection(pos);
}
}
});
}
Si vous souhaitez simplement que votre vue Recycler s'adapte automatiquement au nombre d'éléments, ne définissez pas RecyclerView height comme wrap_content.
Si vous avez plusieurs ScrollView dans la présentation, essayez d’emballer RecyclerView dans NestScrollView et définissez également sa hauteur sur wrap_content.
code:
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recyclerView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
/>