5

Так у меня есть макет, который выглядит примерно следующим образом:андроид: Высота не соблюдается по 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> 

Это формирует мой файл база макета для моей деятельности, а затем я поменять на FrameLayout для различных фрагментов. Один такой фрагмент имеет компоновку, как это:

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

Я бы ожидать, что, как я поставил возвышение как на панели инструментов и SlidingTabLayout быть 4ДП, что панель инструментов не будет отбрасывать тень на закладках, однако он делает:

Screenshot

в идеале я бы не хотел быть установив высоту панели инструментов в коде - кто-нибудь знает, есть ли способ предотвратить панель инструментов бросает тень? Я бы предположил, что, поскольку оба представления находятся на высоте 4dp, даже если они не находятся в одном макете, никакая тень не будет выбрана.

Спасибо за помощь.

+0

Вот билет на ошибку Android: https://code.google.com/p/android/issues/detail?id=82041 – Stanislav

ответ

5

Тени уважают возвышение братьев и сестер, но не кузенов. Панель действий и SlidingTabLayout не являются братьями и сестрами, поэтому панель действий бросает тень на SlidingTabLayout.

Вам нужно настроить панель действий, чтобы удалить высоту, если вам не нужна тень.

+0

А я так понял - так это предполагаемое поведение? Есть ли у вас источник из документов? Cheers – MattWilliams89

+1

Извините, у меня был источник от автора. Я считаю, что это оптимизация производительности. Вы скоро увидите исходный код, и вы можете посмотреть ViewGroup.dispatchDraw(). –

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

  • Нет связанных вопросов^_^