5

我想要我RecyclerViewwrap_content。我不想在 RecyclerView 内进行任何滚动,它应该调整到内部孩子的高度。我不想让我的父 ScrollView 滚动我的活动内容。

<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 会滚动带有所有 RecyclerView 项目的活动。

那么我做错了什么?:)

4

2 回答 2

4

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

于 2016-11-19T23:54:16.880 回答
0

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

于 2016-11-13T14:55:22.507 回答