Mặc dù câu hỏi được hỏi khá nhiều thời gian trước đây, tôi đã tìm một số có thể tìm thấy câu trả lời này hữu ích.
Tôi có RecyclerView với bộ điều hợp.Chiều cao được thiết lập trong onBindViewHolder
phương pháp adapter:
Layout:
<android.support.v7.widget.RecyclerView
android:id="@+id/container"
...
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Adaptor:
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
}
Thiết adapter:
recyclerView.setAdapter(new MyAdapter(...));
Lưu ý: Sử dụng ((RecyclerView) parent).computeHorizontalScrollRange()
với cuộn ngang
Nguồn
2017-12-01 00:00:38
vâng, tôi quên thông báo điều đó. Lý do là tôi muốn sử dụng đa recyclerview tại thời điểm bên trong một scroolview. Và, nếu tôi đặt chiều cao của bất kỳ recyclerview để wrapcontent nó sẽ mất tất cả không gian toàn bộ, nhưng nó hoạt động khi tôi thiết lập một chiều cao cố định như 100dp cho ex. Vì vậy, tôi đang tìm cách thay đổi chiều cao của recyclerview dinamically. –
trên thực tế, ứng dụng của tôi có biểu mẫu cho phép dữ liệu nhập của người dùng và anh ấy có thể thêm biểu mẫu mới nhiều như anh ấy muốn bằng cách nhấn nút "+". Vì vậy, tôi đang cố gắng cách mà khi ông nhấn nút "+" tôi sẽ thêm một mục để recyclerview, vì vậy tôi có thể kiểm soát tất cả mọi thứ thông qua recyclerview. Tại thời điểm này, để tiết kiệm thời gian, tôi chọn một cách khác để làm điều đó nhưng vẫn muốn biết làm thế nào có thể làm điều đó bằng cách này. Và có thể có rất nhiều người cũng muốn biết. –
https://viksaaskool.wordpress.com/2015/05/08/adjust-recyclerview-item-height-example/ –