5

Więc mam układ, który wygląda podobnie do następującego:android: Wzniesienie nie przestrzegane w całej FragmentTransactions

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

Stanowi mój plik układ bazowy dla mojej działalności, a potem zamienić się z FrameLayout różnych fragmentów. Jeden taki fragment ma układ takiego:

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

Spodziewam się, że jak mam ustawić elewacja zarówno Toolbar i SlidingTabLayout być 4DP, że pasek narzędzi nie będzie rzucać cień na kartach, jednak robi:

Screenshot

Idealnie nie chciałbym być ustawienie elewacji Toolbar w kodzie - czy ktoś wie, czy istnieje sposób, aby zapobiec Toolbar rzucając cień? Założę się, że ponieważ oba widoki mają wysokość 4pkt, nawet jeśli nie są w tym samym układzie, cień nie zostanie rzucony.

Dzięki za pomoc.

+0

Oto bilet na błąd Androida: https://code.google.com/p/android/issues/detail?id=82041 – Stanislav

Odpowiedz

5

Cienie szanują podniesienie rodzeństwa, ale nie kuzynów. Pasek akcji i SlidingTabLayout nie są rodzeństwem, więc pasek akcji rzuca cień na SlidingTabLayout.

Musisz dostosować pasek akcji, aby usunąć wysokość, jeśli nie chcesz cienia.

+0

Ach, wymyśliłem tyle - więc to jest zamierzone zachowanie? Czy masz przypadkiem źródło z dokumentów? Pozdrawiam – MattWilliams89

+1

Przepraszamy, moje źródło pochodzi od autora. Uważam, że jest to optymalizacja wydajności. Wkrótce będzie można zobaczyć kod źródłowy i można przejrzeć ViewGroup.dispatchDraw(). –

Powiązane problemy