Obwohl die Frage vor geraumer Zeit gefragt wurde, dachte ich, einige könnten diese Antwort hilfreich.
Ich habe einen RecyclerView mit Adapter.Die Höhe wird in onBindViewHolder
Methode des Adapters eingestellt:
Layout:
<android.support.v7.widget.RecyclerView
android:id="@+id/container"
...
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Adapter:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
public abstract static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView) {
super(itemView);
}
public abstract void setFixedHeight();
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
return new ViewHolder(view) {
@Override
public void setFixedHeight() {
// magic happening here
ViewGroup.LayoutParams parentParams = parent.getLayoutParams();
parentParams.height =
((RecyclerView) parent).computeVerticalScrollRange()
+ parent.getPaddingTop()
+ parent.getPaddingBottom();
parent.setLayoutParams(parentParams);
}
};
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.setFixedHeight();
}
// other methods here
}
Einstellung Adapter:
recyclerView.setAdapter(new MyAdapter(...));
Hinweis: Verwenden ((RecyclerView) parent).computeHorizontalScrollRange()
mit horizontaler scroll
yep, ich habe vergessen, das zu bemerken. Der Grund ist, ich möchte Multi-Recyclerview zur Zeit in einem scroolview verwenden. Und, wenn ich die Höhe eines Recyclerview zu wrapcontent einstellen wird es den ganzen Raum dauern, aber es funktioniert, wenn ich eine feste Höhe wie 100dp für ex festlege. Also, ich finde den Weg, um die Höhe der Recyclerview Dinamically zu ändern. –
in der Tat, meine App haben ein Formular, das Benutzer Eingabedaten erlauben und er kann neue Form so viel wie er will hinzufügen, indem Sie einen "+" Knopf drücken. Also, ich versuche den Weg, dass, wenn er den "+" Knopf drückt, ich einen Gegenstand zur Recycleransicht hinzufüge, also kann ich alles über Recyclerview steuern. Um Zeit zu sparen, wähle ich einen anderen Weg, um es zu tun, aber ich möchte immer noch wissen, wie es auf diese Weise geht. Und vielleicht gibt es viele Leute, die das auch wissen wollen. –
https://viksaaskool.wordpress.com/2015/05/08/adjust-recyclerview-item-height-example/ –