CardView layout_margin无效

我正在玩新的CardView,但利润似乎并没有被应用。

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:layout_marginLeft="18dp" android:layout_marginRight="18dp" card_view:cardCornerRadius="4dp" card_view:cardBackgroundColor="#FFA" card_view:layout_margind="4dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/info_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> </LinearLayout> </android.support.v7.widget.CardView> 

顺便说一句,我用它在一个ViewPager中的片段。 即使我在CardView上使用android:layout_marginLeft =“18dp”和android:layout_marginRight =“18dp”,该卡也会扩展整个屏幕宽度(match_parent)。

任何想法我可能做错了什么?

Solutions Collecting From Web of "CardView layout_margin无效"

如果您使用RecyclerView添加CardView,android:layout_margin应该足够了。

但是使用ListView来添加CardView,你可以这样做:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" > <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:layout_marginRight="11dp" android:layout_marginTop="11dp"> (other layout ...) </android.support.v7.widget.CardView> </FrameLayout> 

但通常不是最理想的。

我以前有同样的问题,我在这里find答案… CardView layout_width =“match_parent”不匹配父RecyclerView宽度

在ViewPager中的CardView xml充气时,传入ViewGroup。 这将允许inflater知道要引用哪个布局参数。

为了膨胀布局文件使用如下所示:

 View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_list_item, viewGroup,false); 

希望有所帮助

ViewPager.LayoutParams不扩展ViewGroup.MarginLayoutParams

就这么简单。

http://developer.android.com/reference/android/support/v4/view/ViewPager.LayoutParams.html

将边距添加到RecyclerView或ListView,而不是Card View或Row item Layout