android 5.0+负面布局边距似乎不起作用

时间:2015-05-29 17:24:29

标签: android android-cardview margin

我已经在5.0之前的设备上测试了这些代码,但它们似乎都能正常工作。 当我在5.0以上的任何东西上尝试时,图像会被剪裁,因为它们的z位置不在前面。

这是我试图解决的布局。问题是CardView下方的5张图片。我希望他们能够在某种程度上受到关注。到CardView"即CardView有5张图像挂在上面。他们应该在卡上约50%和50%的折扣。我在Android 4.4及更低版本上实现了负面布局边距,但是当我在5.0+上看这个时,图像位于CardView下面而不是它上面。

我试图将FrameView包装在一个framelayout中并按照这种方式进行,但视图完全消失。

非常感谢任何帮助!

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clipChildren="false">

        <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center">


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/card_rep_image"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/rep_dean" />

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="5dp">

                    <ImageView
                        android:id="@+id/card_image_type"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:background="@drawable/reps_small_image" />

                    <TextView
                        android:id="@+id/card_type"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@id/card_image_type"
                        android:textColor="@color/reps_icon" />

                    <TextView
                        android:id="@+id/card_rep_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/card_type"
                        android:layout_toRightOf="@id/card_image_type"
                        android:textColor="#333333"
                        android:textSize="15dp"
                        android:textStyle="bold" />

                    <LinearLayout
                        android:id="@+id/card_rep_bottom_container"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/card_rep_name"
                        android:layout_toRightOf="@id/card_image_type"
                        android:orientation="horizontal">

                        <ImageView
                            android:id="@+id/card_rep_office_identifier"
                            android:layout_width="10dp"
                            android:layout_height="10dp"
                            android:visibility="gone" />

                        <TextView
                            android:id="@+id/card_rep_office"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                        <Space
                            android:layout_width="5dp"
                            android:layout_height="wrap_content" />

                        <View
                            android:layout_width="2dp"
                            android:layout_height="10dp"
                            android:layout_marginTop="7dp"
                            android:background="@android:color/darker_gray" />

                        <Space
                            android:layout_width="5dp"
                            android:layout_height="wrap_content" />

                        <TextView
                            android:id="@+id/card_rep_location"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="30dp"
                            android:visibility="invisible" />

                    </LinearLayout>

                </RelativeLayout>

            </LinearLayout>
        </android.support.v7.widget.CardView>


        <ImageView
            android:id="@+id/image_one"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_below="@id/card_view"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="-25dp"
            android:background="@drawable/social_bottom" />

        <ImageView
            android:id="@+id/image_two"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_below="@id/card_view"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="-25dp"
            android:layout_toLeftOf="@id/image_one"
            android:background="@drawable/bills_bottom" />

        <ImageView
            android:id="@+id/image_three"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_below="@id/card_view"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="-25dp"
            android:layout_toLeftOf="@id/image_two"
            android:background="@drawable/reps_gray_bottom" />

        <ImageView
            android:id="@+id/image_four"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_below="@id/card_view"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="-25dp"
            android:layout_toLeftOf="@id/image_three"
            android:background="@drawable/polls_bottom" />

        <ImageView
            android:id="@+id/image_five"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_below="@id/card_view"
            android:layout_marginTop="-25dp"
            android:layout_toLeftOf="@id/image_four"
            android:background="@drawable/news_bottom" />


    </RelativeLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

考虑一下

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_marginBottom="13dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

ImageViews

<ImageView
        android:id="@+id/image_one"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:layout_below="@id/card_view"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="-25dp"
        android:background="@drawable/social_bottom" />

答案 1 :(得分:0)

我通过在Z轴上翻译我的视图来解决这个问题,以便将它们放在CardView上面。

使用FrameLayout或使用bringToFront()

也可以实现这一点

但这也是另一种解决方案。