我遇到了一个我无法解决的问题。我有一个CardView
包含RecyclerView
的片段。这个RecyclerView
有layout_height="wrap_content"
,但我可以看到这不起作用。我在这里读了一些solutions,说在支持库的23.2版本中这是固定的,但它在我的情况下并不起作用。另外,我想在TextView
下方CardView
,但它没有显示它。如果我给CardView
一个固定的高度,它的工作正常。
我希望有人可以帮忙解决这个问题。
修改 让我们看看这张图片是否更好地解释了我的意思。
这里,RecyclerView
限制是蓝色矩形,而它们应该与红色矩形相似,这就是我想要的结果。
dependencies{
compile 'com.android.support:recyclerview-v7:24.+'
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:padding="5dp"
card_view:cardElevation="4dp">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
</android.support.v7.widget.CardView>
<TextView
android:layout_width="match_parent"
android:layout_height="300dp"
android:text="test text"
android:textSize="20sp"/>
答案 0 :(得分:2)
好的,最后我做到了。我不想回答我自己的问题,但也许可以帮助别人。
我指责RecyclerView
,但有罪的是SwipeRefreshLayout
。事实上,我作为一个新手是有罪的。问题是我将SwipeRefreshLayout
放在CardView
内。对于我所看到的内容,SwipeRefreshLayout
尝试获取所有可用空间(我认为这是一种逻辑行为),这就是为什么我的CardView
也在做同样的事情。
所以解决方案很简单:在顶部,将SwipeRefreshLayout
放在LinearLayout
内,将CardView
放在RecyclerView
和TextView
里面}。
希望这可以像我一样帮助其他新手:)
答案 1 :(得分:0)
我有一个<include @layout/some_layout />
文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">
<!-- Wrap this whole thing in a cardView -->
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
<!-- End of cardview layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="300dp"
android:text="test text"
android:layout_below="@id/recycler"
android:textSize="20sp"/>
</RelativeLayout>
我开始考虑的是将recyclerview和textview放在卡片视图中。这意味着将CardView作为您的根布局。只是我的想法!