2015-04-02 3 views
0

Вот мой XML:Как добавить тень SlidingTabLayout в нижней

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <com.example.SlidingTabLayout 
     android:id="@+id/sliding_tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/actionbar_bg" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="0px" 
     android:layout_weight="1" 
     android:background="@android:color/white" /> 

</LinearLayout> 

До сих пор я пытался:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <!-- Drop Shadow Stack --> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#70d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#60d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#50d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#40d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#30d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#20d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#10d8d8d8" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <padding 
       android:bottom="1dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 

      <solid android:color="#00d8d8d8" /> 
     </shape> 
    </item> 

    <!-- Background --> 
    <item> 
     <shape> 
      <solid android:color="@color/actionbar_bg" /> 

      <corners android:radius="0dp" /> 
     </shape> 
    </item> 

</layer-list> 

Однако это не дает мне желаемого результата, я хочу что-то вроде:

enter image description here

+0

add elevation to tablayout android: elevation = "2dp" – WISHY

+0

Это будет работать только с уровнем API 21 – Skynet

ответ

0

Добавить простой View между com.example.SlidingTabLayout и android.support.v4.view.ViewPager. Установите фон для этого View как градиент, который имитирует тень.

shadow.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
      android:startColor="#20000000" 
      android:endColor="@android:color/transparent" 
      android:angle="90"> 
    </gradient> 
</shape> 

Edit: если вам нужна тень, которая должна быть нарисованный на вершине ViewPager, а затем двигаться ViewPager и View с тенью фона в RelativeLayout. Это хорошо, когда у вас нет источников SlidingTabLayout. В случае, если у вас есть исходный код, вы можете добавить теневой рисунок из кода, переопределяя метод onDraw в SlidingTabLayout.

+0

Проблема с этим решением заключается в том, что его непрозрачный клип для просмотров при прокрутке. Я хочу эффект, при котором тень применяется без отсечения. – Skynet

+0

, если вам нужна прозрачная тень, просто добавьте альфу к цветам градиента. android: startColor = "# 55404040", android: endColor = "# 55F1F1F1" –

+0

Брат все еще будет зажимать, тень должна быть прозрачной и плавающей, так что все, что прокручивается под видом, видно, одним из решений для этого было бы для использования макета кадра. – Skynet

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