新しい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>
ちなみに、私はそれをFragmentで、つまりViewPagerで使用しています。 CardViewでAndroid:layout_marginLeft="18dp"
およびAndroid:layout_marginRight="18dp"
を使用している場合でも、カードは画面の幅全体に広がります(match_parent)。
私が間違っている可能性のあるアイデアはありますか?
ViewPager.LayoutParamsはViewGroup.MarginLayoutParamsを拡張しません
とても簡単です。
http://developer.Android.com/reference/Android/support/v4/view/ViewPager.LayoutParams.html
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>
しかし、通常は最適なものではありません。
以前にも同じ問題がありました、ここで答えを見つけました... CardView layout_width = "match_parent"は親RecyclerViewの幅と一致しません
ViewPager内でCardView xmlを拡張するときに、ViewGroupを渡します。これにより、インフレータは参照するレイアウトパラメータを知ることができます。
レイアウトファイルをインフレートするには、次のようなものを使用します。
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_list_item, viewGroup,false);
役立つことを願っています
app:cardPreventCornerOverlapプロパティをfalse cardView <Android.support.v7.widget.CardView ... app:cardPreventCornerOverlap="false" ...