5

So habe ich ein Layout, das dem folgenden ähnelt:android: Höhe nicht über FragmentTransactions respektiert

 <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_height="wrap_content" 
      android:elevation="4dp" 
      android:background="?attr/colorPrimary" 
      android:layout_width="match_parent" 
      android:minHeight="?attr/actionBarSize"/> 

     <FrameLayout 
      android:id="@+id/content" 
      android:layout_below="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

    </RelativeLayout> 

Dies bildet meine Basis-Layout-Datei für meine Tätigkeit und dann tauschen ich die FrameLayout für verschiedene Fragmente. Ein solches Fragment hat ein Layout wie folgt aus:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <SlidingTabLayout 
     android:id="@+id/sliding_tabs" 
     android:layout_width="match_parent" 
     android:elevation="4dp" 
     android:layout_height="wrap_content"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/profileViewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@id/sliding_tabs" 
     android:background="@android:color/white"/> 

    <FloatingActionButton 
     android:id="@+id/floatingButton" 
     android:layout_width="72dp" 
     android:layout_height="72dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="16dp" 
     android:layout_marginBottom="16dp"/> 

</RelativeLayout> 

Ich würde erwarten, dass, wie ich festgelegt haben die Erhebung sowohl der Toolbar und der SlidingTabLayout 4DP sein, dass die Symbolleiste nicht einen Schatten auf den Registerkarten werfen würde jedoch es tut:

Screenshot

Idealerweise würde ich nicht die Höhe der Toolbar im Code sein will Einstellung - weiß jemand, ob es eine Möglichkeit ist, die Toolbar einen Schatten zu werfen zu verhindern? Ich hätte angenommen, dass, da beide Ansichten auf 4dp Höhe sind, auch wenn sie nicht im selben Layout sind, kein Schatten geworfen würde.

Danke für die Hilfe.

+0

Hier ist das Ticket für den Android-Fehler: https://code.google.com/p/android/issues/detail?id=82041 – Stanislav

Antwort

5

Schatten respektieren die Erhebung von Geschwistern, aber nicht Cousins. Die Aktionsleiste und das SlidingTabLayout sind keine Geschwister, daher überschreibt die Aktionsleiste einen Schatten auf das SlidingTabLayout.

Sie müssen die Aktionsleiste anpassen, um die Höhe zu entfernen, wenn Sie den Schatten nicht möchten.

+0

Ah habe ich so viel - so ist dies beabsichtigt Verhalten? Haben Sie zufällig eine Quelle aus den Dokumenten? Cheers – MattWilliams89

+1

Sorry, meine Quelle ist vom Autor. Ich glaube, dass dies eine Leistungsoptimierung ist. Sie werden in der Lage sein, den Quellcode bald zu sehen, und Sie können ViewGroup.dispatchDraw() betrachten. –