2016-01-08 7 views
10

こんにちは私は(スカイプのように)私のタブレイアウトの下に影を追加する必要があります。タブのレイアウトにボトムの影を追加するには

shadow_skype

私の活動のxml:私はTablayoutにandroid:elevation="10dp"を追加すると

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:minHeight="?attr/actionBarSize" 
     android:background="@color/splashGreenTop" 
     local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_below="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:elevation="0dp" 
     android:minHeight="?attr/actionBarSize" /> 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_below="@+id/tab_layout" 
     android:id="@+id/tabContainer" 
     android:layout_height="match_parent" /> 
</RelativeLayout> 

、影が底部と頂部を添加して..私はちょうど下を必要としています。

enter image description here

がどのように私はこれを行うことができます...画像を参照してください? ありがとうございます。

+0

http://stackoverflow.com/質問/ 26572048/elevation-on-android-lollipop-not-working –

答えて

20

Tablayout(0dp - 25dp)に標高を追加するだけです。標高の詳細については、material designのガイドラインをご覧ください。

android:elevation="10dp" 

EDIT:

あなたtablayoutとツールバーの両方に
<android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/splashGreenTop" 
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    android:elevation="10dp" /> 
<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_below="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    android:elevation="10dp"/> 
+1

@pukoあなたの 'ToolBar'に標高を追加すると言っています –

+0

@puko check私は編集を編集しました –

+0

great !!ありがとう – puko

1

それを追加しTabLayoutとツールバーの間の単純なビューを追加してみてください。影を模したグラデーションとしてそのビューの背景を設定します。

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

あなたはこの

のように描画可能に xmlを作成するツールバーの下のビューを使用し、uは

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:minHeight="?attr/actionBarSize" 
     android:background="@color/splashGreenTop" 
     local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_below="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:elevation="0dp" 
     android:minHeight="?attr/actionBarSize" /> 

     <View 
     android:layout_width="match_parent" 
     android:layout_height="5dp" 
     android:layout_below="@+id/tab_layout" 
     android:background="@drawable/toolbar_dropshadow" /> 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_below="@+id/tab_layout" 
     android:id="@+id/tabContainer" 
     android:layout_height="match_parent" /> 
</RelativeLayout> 

を必要とするようにそれをカスタマイズすることができますトリックです

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

staを変更するあなたが適用したいと希望の色と終了色

0

あなたのTablayoutに標高を加える。 ちょうどAppBarLayoutの内側にツールバーとTabLayoutを置く:Material Design

android:elevation="15dp" 
0

非常に簡単な解決策は実際にあります。たとえば :

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ToolbarTheme" 
     app:titleTextAppearance="@style/ThemeOverlay.AppCompat.ActionBar" 
     android:background="@color/colorPrimary"/> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorPrimary" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 
</android.support.design.widget.AppBarLayout> 

これは私のために完璧に動作し、それがAPP-/ツールバーとTabLayoutを結合するための一般的な方法です。

3

あなたは、デフォルトでは影を持っているか、あなたはアプリによって影の深さを指定することができますAppBarLayoutで子としてTabLayoutを追加することができます。標高=「XDP」

<android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:elevation="xdp"> 

     <android.support.v7.widget.Toolbar 
     ... 
     /> 

     <android.support.design.widget.TabLayout 
     ... 
     /> 

    </android.support.design.widget.AppBarLayout> 
関連する問題