1

Я знаю, что этот тип проблем уже обсуждался здесь столько раз. Но в моем случае никто из них не работал на меня. Я использую AndroidSlidingUpPanel в своем проекте с навигационным ящиком. Проблема заключается в раздвижной панели, которая всегда отображается над навигационным ящиком, но то, что я хочу, является обратным. Вот текущее состояниеAndroid показывает один элемент компоновки над другим

enter image description here

Как вы можете видеть, что я не могу увидеть элементы навигации ящик. Скользящая панель скрывает навигационный ящик.

Вот мой код

<?xml version="1.0" encoding="utf-8"?> 

<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/sliding_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="bottom" 
    sothree:umanoDragView="@+id/dragView" 
    sothree:umanoOverlay="false" 
    sothree:umanoPanelHeight="68dp" 
    sothree:umanoParalaxOffset="100dp" 
    sothree:umanoShadowHeight="4dp"> 


    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/drawerMainActivity" 
     android:layout_width="match_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_height="match_parent"> 



     <FrameLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/containerView"> 

      <android.support.v7.widget.Toolbar 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:minHeight="?android:attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       android:id="@+id/toolBar" 
       android:fitsSystemWindows="true" 
       android:theme="@style/ThemeOverlay.AppCompat.Dark" 
       /> 

     </FrameLayout> 


     <android.support.v7.widget.RecyclerView 
      android:layout_width="240dp" 
      android:layout_height="match_parent" 
      android:id="@+id/recyclerView" 
      android:scrollbars="vertical" 
      android:background="#FFFFFF" 
      android:layout_gravity="left" 
      /> 

    </android.support.v4.widget.DrawerLayout> 


    <!-- SLIDING LAYOUT --> 
    <LinearLayout 
     android:id="@+id/dragView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#ffffff" 
     android:clickable="true" 
     android:focusable="false" 

     android:orientation="vertical"> 

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

      <TextView 
       android:id="@+id/name" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:textColor="@android:color/holo_green_dark" 
       android:gravity="center_vertical" 
       android:paddingLeft="10dp" 
       android:text="@string/slide" 
       android:textSize="14sp" /> 

      <Button 
       android:id="@+id/btn_hide" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:gravity="center_vertical|right" 
       android:paddingLeft="10dp" 
       android:paddingRight="10dp" 
       android:text="@string/hide" 
       android:textSize="14sp" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#FFCCCC"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="10dp" 
       android:layout_weight="1" 
       android:scaleType="centerCrop" 
       android:src="@drawable/image" /> 
     </LinearLayout> 
    </LinearLayout> 


</com.sothree.slidinguppanel.SlidingUpPanelLayout> 

Как я могу решить эту проблему? Так что навигационный ящик всегда набирает верх над раздвижной панелью.

+0

Вы вы пробовали настройки 'DrawerLayout' в качестве корневого элемента? – PPartisan

+0

@PPartisan спасибо, он работает сейчас. – aroSuv

+0

@PPartisan не могли бы вы оставить свой комментарий в качестве ответа? – aroSuv

ответ

1

Установите ваш DrawerLayout в качестве корневого элемента, вместо того, чтобы ваш SlidingUpPanelLayout

1

Чтобы установить ось Z, вы должны заказать дерево. Из документации

View.html#Drawing

Дерево в основном регистрируется и обращается в порядке, с родителями нарисованных перед (т.е. сзади) своих детей, с братьями и сестрами, сделанными в порядке они появляются в дереве. Если вы установите фоновый чертеж для представления, , тогда представление будет рисовать его, прежде чем переходить к его методу onDraw(). Заказ детского рисунка может быть переопределен с помощью пользовательского дочернего чертежа заказа в ViewGroup и с установленными значениями Z значений setZ (float)}, установленными на Просмотров.

Итак, в основном установите Drawerlayout как последний.

Смежные вопросы