Je joue avec le nouveau CardView, mais les marges ne semblent pas s'appliquer.
<?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>
Par ailleurs, je l'utilise dans un Fragment qui est dans un ViewPager. La carte étend toute la largeur de l'écran (match_parent) même si j'utilise Android:layout_marginLeft="18dp"
et Android:layout_marginRight="18dp"
sur le CardView.
Des idées sur ce que je pourrais faire de mal?
ViewPager.LayoutParams n'étend pas ViewGroup.MarginLayoutParams
C'est si simple.
http://developer.Android.com/reference/Android/support/v4/view/ViewPager.LayoutParams.html
Si vous utilisez RecyclerView pour ajouter CardView, Android: layout_margin devrait être suffisant.
Mais en utilisant ListView pour ajouter CardView, vous pouvez faire ceci:
<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>
Mais ce n'est généralement pas optimal.
J'ai eu les mêmes problèmes auparavant, j'ai trouvé la réponse ici ... CardView layout_width = "match_parent" ne correspond pas à la largeur de RecyclerView parent
Au moment de gonfler le XML CardView à l'intérieur de votre ViewPager, passez le ViewGroup dedans. cela permettra au gonfleur de savoir à quels paramètres de mise en page se référer.
Pour gonfler le fichier de mise en page, utilisez quelque chose comme ci-dessous:
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_list_item, viewGroup,false);
J'espère que cela pourra aider
Définissez app: cardPreventCornerOverlap propriété sur false dans cardView <Android.support.v7.widget.CardView ... app:cardPreventCornerOverlap="false" ...