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)。

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

  • 更改屏幕旋转时ViewPager片段消失
  • Android背景图像减慢应用程序
  • 如何在Android ViewPager中更改当前选项卡的荧光笔颜色?
  • 使用FragmentStatePagerAdapter而不支持库
  • viewpager选项卡中的我的片段不刷新
  • 我怎样才能实现水平滑动不使用支持库?
  • 在ViewPager中水平滚动webview
  • 在viewpager上滑动时,选项卡select器在以前的选项卡上不起作用
  • 如果您使用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