【发布时间】:2015-05-24 06:53:28
【问题描述】:
我正在尝试使用 RecyclerView 和 CardView 作为列表中的一个项目。
我想实现横向列表,用LayoutManager真的很简单。
所以我开始实施它。似乎一切正常,但不是我预期的结果是使用 CardView 作为列表项。
看起来不错,但我没有设置任何填充、分隔线和圆角。
这是我的卡片视图项目的 XML。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:gravity="center"
>
<ImageView
android:id="@+id/image_view"
android:src="@drawable/androidsss"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
/>
<TextView
android:id="@+id/info_text"
android:layout_below="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/black"
android:textSize="14sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
布局底部还有一个小分隔线。
我没有指定任何内容。
这是我为 RecyclerView 设置代码
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(this);
mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerView.setLayoutManager(mLayoutManager);
// mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration(this));
mAdapter = new CardViewDataAdapter(myDataset);
mRecyclerView.setAdapter(mAdapter);
有趣的是,简单的项目,而不是卡片视图,一切都按预期工作。这是一个例子。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="150dp"
android:layout_height="100dp"
android:background="@android:color/white"
>
<ImageView
android:id="@+id/item_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
/>
<TextView
android:id="@+id/item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/item_image"
android:text="Hello World !!"
android:layout_centerInParent="true"
android:textColor="@android:color/black"
/>
</RelativeLayout>
问题出在哪里,是我的错还是bug?
【问题讨论】:
-
也许它是 CardView 的功能?我的意思是这就是我们使用 cardViews 的原因——获取阴影等等。
-
如果您不想要填充、圆角和阴影,那么就不要使用 CardView。一个普通的 FrameLayout 等就可以了。
标签: android android-layout android-listview android-cardview android-recyclerview