RecyclerView 高度 wrap_content 计算不正确

RecyclerView height wrap_content calculation is incorrect

我想让我的 RecyclerView 变成 wrap_content。我不希望 RecyclerView 内有任何滚动,它应该适应内部儿童的高度。我不想让我的父 ScrollView 滚动我的 activity.

的内容
<FrameLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <!-- scrolls a little bit as RecyclerView goes slightly down beyond the screen -->
  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical">
      <!-- still scrolls inside -->
      <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

填充 RecyclerView:

myAdapter = new MyAdapter();
layoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(myAdapter);

我使用 RecyclerView 库,其中 wrap_content 问题应该被修复:

dependencies {
    compile 'com.android.support:recyclerview-v7:25.0.0'
}

基本上 RecyclerView 高度计算在这里对我来说不太适用。 RecyclerView 仍然有它自己的滚动,并且 ScrollView 也会滚动一点。如果我尝试将一些可笑的 RecyclerView 高度设置为 1000dp,使其大于项目的总高度,则滚动会根据需要工作,例如RecyclerView 不滚动,ScrollView 滚动 activity 和所有 RecyclerView 项目。

那我做错了什么? :)

在这种情况下,您需要升级您的 recyclerview gradle 版本,如果您使用的是 23.0.1,请将其升级为 23.1.1 或更高版本。在最新的 gradle 更新中 google 向 recyclerview 提供了 wrap_content 属性。

我只需要使用 android.support.v4.widget.NestedScrollView 而不是 ScrollView。