我已经在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>
答案 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()
也可以实现这一点但这也是另一种解决方案。