2014-07-30 5 views
7

Mam układ względny z dwoma widokami wewnątrz, CardView i ImageButton, muszę umieścić IB powyżej cardview, ale widok cardview nie respektuje indeksu z zamówienie. Jeśli wymieniam cardview na LinearLayout, wydaje się, że jest OK, więc domyślam się, że problem dotyczy samej karty.Cardview nie respektuje porządku indeksu z w układzie względnym

Oto mój kod:

<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> 

Odpowiedz

13

Na Android L, CardView posiada zestaw elewacji, która sprawi, że pojawiają się powyżej innych poglądów, niezależnie od ich kolejności w układzie. Musisz albo ustawić wysokość na przycisku, albo lepiej, umieścić przycisk wewnątrz CardView.

+0

Kolejne pytanie, czy mogę ustawić wysokość bez uzyskiwania cienia? – Edgar

+0

Dostosowywanie widoku Cienie i kontury https://developer.android.com/training/material/shadows-clipping.html#Shadows – Hartok

+0

Wydaje się być właściwym pomysłem. JEDNAK, podniesienie każdego innego możliwego widoku powyżej cardView w ogóle nie działa ... Mój DrawerLayout nadal pojawia się poniżej CardViews. – Radu