2015-09-22 129 views
2

我用下面的我的風格,使狀態欄透明刪除陰影:從狀態欄的Android

<style name="TransparentStatusBar" parent="ThemeBase"> 
    <item name="android:windowTranslucentStatus">true</item> 
    <item name="android:windowTranslucentNavigation">true</item> 
</style> 

但是現在有在屏幕,在狀態欄是頂端的影子:

img

我該如何去除這個陰影?

編輯:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/primary" 
    app:layout_scrollFlags="scroll|enterAlways" 
    app:theme="@style/ToolbarTheme" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    /> 

活動:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(getLayoutResource()); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 

    if (toolbar != null) { 
     setSupportActionBar(toolbar); 
     toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_action_back)); 
     toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBackPressed(); 
      } 
     }); 
    } 
} 

ToolbarTheme:

<style name="ToolbarTheme" parent="ThemeBase"> 
    <item name="android:textColorPrimary">@color/white</item> 
</style> 

回答

5

遲到了! 這黑色的陰影,主要是由於

<item name="android:windowTranslucentStatus">true</item>

有可以處理兩個方面。

  1. 您只需要具有與下圖相同的狀態欄顏色。

    這種方式是,如果你添加你得到caught.Because背景圖像實際上它的兩個視圖,狀態欄和其下方查看在同一color.Yet有些人需要這個!

    爲此,您不需要android:windowTranslucentStatus。它會使那個黑影! 製作<item name="android:statusBarColor">@color/asSameColorAsBelowViewColor</item>你可以實現它。即使這可以應用於OP的問題here.But它的顏色。其他智慧你被困。


  • 你真的需要去後面StatusBar你的觀點而沒有黑色的影子。

    例如:在需要使用圖像的情況下。

    對於此再次,如果你正在使用<item name="android:windowTranslucentStatus">true</item>你可以將其刪除,並添加<item name="android:statusBarColor">@color/transparent</item>

    ,並在活動setContentView()前加getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);