要让 RecyclerView 自适应高度,可以使用以下步骤:

  1. 在布局文件中,将 RecyclerView 的高度设置为 wrap_content。
  2. 在代码中,为 RecyclerView 设置一个自定义的 RecyclerViewHeightCalculator 类。该类继承自 RecyclerView.OnScrollListener,并重写 onScrolled 方法。
  3. 在 onScrolled 方法中,计算 RecyclerView 的高度并进行调整。

下面是一个示例代码:

public class RecyclerViewHeightCalculator extends RecyclerView.OnScrollListener {
    private RecyclerView recyclerView;

    public RecyclerViewHeightCalculator(RecyclerView recyclerView) {
        this.recyclerView = recyclerView;
    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);

        int totalHeight = recyclerView.getLayoutManager().getChildCount() * recyclerView.getLayoutManager().getChildAt(0).getHeight();
        recyclerView.getLayoutParams().height = totalHeight;
        recyclerView.requestLayout();
    }
}

使用此类时,只需将其添加到 RecyclerView 中:

RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addOnScrollListener(new RecyclerViewHeightCalculator(recyclerView));

这样,当 RecyclerView 中的内容变化时,它的高度将自动适应内容的高度

NestedScrollView 中包含RecyclerView 如何让RecyclerView 自适应高度

原文地址: http://www.cveoy.top/t/topic/iXsd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录