18
如何使WRAP_CONTENT在RecyclerView上工作
我有一个DialogFragment包含RecyclerView(卡片列表)的。 其中RecyclerView一个或多个CardViews可以具有任意高度。 我想DialogFragment根据CardViews其中包含的高度给它正确的高度。 通常情况下,这将是简单的,我会成立wrap_content的RecyclerView这个样子。 <android.support.v7.widget.RecyclerView ... xmlns:tools="http://schemas.android.com/tools" android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:scrollbars="vertical" > </android.support.v7.widget.RecyclerView> 因为我使用的是RecyclerView这不起作用,请参见: https://issuetracker.google.com/issues/37001674 和 嵌套的回收站视图高度不包含其内容 在这两个页面上,人们都建议扩展LinearLayoutManager和覆盖onMeasure() 我首先使用了第一个链接中提供的LayoutManager: public static class WrappingLayoutManager extends LinearLayoutManager { public WrappingLayoutManager(Context context) { super(context); } private int[] mMeasuredDimension = new int[2]; @Override public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) …