我有一个内部有两个视图的相对布局,一个CardView和一个ImageButton,我需要将IB放在cardview上面,但是cardview并不尊重z索引顺序。如果我用一个LinearLayout替换cardview,它似乎没问题,所以我猜问题就在于cardview本身。
这是我的代码:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/icons_bg_whited"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.noname.classmates.Activity.Register"
tools:ignore="MergeRootFrame"
android:padding="27dip">
<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="match_parent"
card_view:cardCornerRadius="10dp"
android:layout_marginTop="38dip">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container"/>
</android.support.v7.widget.CardView>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_upload_pic"
android:layout_centerHorizontal="true"
android:src="@drawable/upload_profile_pic"
android:contentDescription="@string/upload_profile_picture"
android:background="@android:color/transparent" /> </RelativeLayout>
答案 0 :(得分:16)
在Android L上,CardView
有一个高程设置,无论它们在布局中的顺序如何,都会使其显示在其他视图上方。您需要在按钮上设置高程,或者更好,将按钮放在CardView
内。
答案 1 :(得分:0)
是的,问题出在CardView
上,它具有默认的高程,因此无论顺序如何,它都会出现在其他任何视图上。
为使其正常,我最终将CardView
包裹在LinearLayout
内。
这么早,就像
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<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="match_parent"
card_view:cardCornerRadius="10dp"
android:layout_marginTop="38dip">
</RelativeLayout>
然后我将其更改为
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="38dip">
<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="match_parent"
card_view:cardCornerRadius="10dp">
.
.
.
</CardView>
</LinearLayout>
</RelativeLayout>
尽管我不知道为什么它可以工作 但可以按预期工作 的确切原因。