我目前正在使用RecyclerView
来显示卡片列表。
它适用于ListView
和ArrayListAdapter
,但现在发生了一些奇怪的事情。
首次加载列表时,会显示正在显示的3张第一张卡片。但是未显示的那些在每一个下面都有很大的空间。
它与LayoutManager
有关,因为Android doc说它是管理显示与否的实体以及如何显示它。
就我而言,我正在使用LinearLayoutManager
。
以下是我Fragment
内部初始化的一些代码:
layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
listAdapter = new EventsListAdapter(events);
recyclerView.setAdapter(listAdapter);
recyclerView.setLayoutManager(layoutManager);
这是RecyclerView
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/events_list_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</RelativeLayout>
最后我的CardView
声明
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/event_row_cardview">
...
答案 0 :(得分:0)
我找到了问题的根源。
我的CardView
被包裹在LinearLayout
内,其属性为android:layout_height="match_parent"
,所以每次呈现时都会占据屏幕的整个高度。
我通过将属性更改为android:layout_height="wrap_content"