Предпочтительным способом является использование одного RecyclerView, при этом его адаптер обрабатывает оба типа представлений из ListView и RecyclerView, но если вы настаиваете на использовании ListView и RecyclerView, вы можете использовать этот подкласс ListView
public class WrapListView extends ListView {
public WrapListView(Context context) {
super(context);
}
public WrapListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 1, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
RecyclerView поддерживает wrap_content из коробки, вам просто нужно вызвать recyclerView.setNestedScrollingEnabled(false);
, чтобы сделать прокрутку плавной
Это приведет к аннулированию механизма рециркуляции как ListView, так и RecyclerView, так как высота обоих видов растянута до полной длины,и ни один элемент не будет повторно использован / переработан.