Z-index in android?

45,003

Solution 1

Your xml does not contain your outer layout, but I assume it is a relative layout. In a RelativeLayout, the elements' z levels are determine by the order they are added to the container. View added later will be on top. Try moving your sliding drawer to the bottom of your outer container. Like this --

<ListView android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stackFromBottom="true"
    android:transcriptMode="alwaysScroll"
    android:layout_above="@+id/InnerRelativeLayout"
    android:layout_alignParentTop="true" 
/>  
 <RelativeLayout 
    android:id="@+id/InnerRelativeLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" >
    <Button 
        android:text="kirim" 
        android:id="@+id/button_send"
        android:layout_alignParentRight="true" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="tambahItems"          
        >

    </Button>           
</RelativeLayout> 

<com.ltvie.chat.MultiDirectionSlidingDrawer
    xmlns:my="http://schemas.android.com/apk/res/com.ltvie.chat"
    android:id="@+id/drawer"
    my:direction="topToBottom"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    my:handle="@+id/handle"
    my:content="@+id/content"
    >
   <include
        android:id="@id/content"
        layout="@layout/pen_content"
        android:gravity="top"           
        />
     <ImageView
        android:id="@id/handle"
        android:layout_width="wrap_content"
        android:layout_height="5dp"
        android:src="@drawable/sliding_drawer_handle_bottom" />          
</com.ltvie.chat.MultiDirectionSlidingDrawer>

Solution 2

you can just add translation for Z as you want(1dp,2pd,...) like:

<ImageView
    android:id="@+id/imageView0"
    android:layout_width="110dp"
    android:layout_height="110dp"
    android:layout_marginTop="25dp"
    android:contentDescription="@string/desc"
    android:translationZ="1dp"
    app:srcCompat="@drawable/ic_icon" />
Share:
45,003
ltvie
Author by

ltvie

Updated on February 13, 2022

Comments

  • ltvie
    ltvie over 2 years

    I've more than one elemen in one xml.. listview,slidingdrawer,edittext and button... i want to sliding drawer order is always in front of another elements...but i can't..

    here my xml

    <com.ltvie.chat.MultiDirectionSlidingDrawer
        xmlns:my="http://schemas.android.com/apk/res/com.ltvie.chat"
        android:id="@+id/drawer"
        my:direction="topToBottom"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        my:handle="@+id/handle"
        my:content="@+id/content"
        >
       <include
            android:id="@id/content"
            layout="@layout/pen_content"
            android:gravity="top"           
            />
         <ImageView
            android:id="@id/handle"
            android:layout_width="wrap_content"
            android:layout_height="5dp"
            android:src="@drawable/sliding_drawer_handle_bottom" />          
    </com.ltvie.chat.MultiDirectionSlidingDrawer>
    
    <ListView android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:stackFromBottom="true"
        android:transcriptMode="alwaysScroll"
        android:layout_above="@+id/InnerRelativeLayout"
        android:layout_alignParentTop="true" 
    />  
     <RelativeLayout 
        android:id="@+id/InnerRelativeLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >
        <Button 
            android:text="kirim" 
            android:id="@+id/button_send"
            android:layout_alignParentRight="true" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="tambahItems"          
            >
            
        </Button>           
    </RelativeLayout>
    

    the result of mycode in my pict bellow :D

    enter image description here

    i want to know how to fix it??

    regard,

  • iagreen
    iagreen over 11 years
    right and the outer layout you've shown is a relative layout. Move the entire sliding drawer block to the bottom of the xml code you've shown. (see edit).
  • ltvie
    ltvie over 11 years
    slidingdrawer succes in front..but i got new problem...listview doesn't display,,,i get error java.lang.ClassCastException: android.widget.listview
  • iagreen
    iagreen over 11 years
    the xml change should not cause that error. Have you changed your java code recently? I would need to see more of the logcat and code to tell you what is going on there.