2016-02-29 23 views
7

Mi piacerebbe rendere trasparente la barra di stato aggiungendo <item name="android:statusBarColor">@android:color/transparent</item> a v21/styles.xml su style name="AppTheme.NoActionBar" ma continuo a ricevere un'ombra sopra la barra delle app, è possibile rimuoverlo?Come rimuovere l'ombra sopra la barra delle applicazioni?

EDIT: Ok penso che la soluzione è quella di spostare la barra di applicazione che occupa lo spazio barra di stato ed estendendo la barra applicazione di un dp aggiuntivo per abbinarlo dimensioni così la mia domanda è, è possibile spostare o estendere l'applicazione altezza della barra verso l'alto?

activity_search.xml

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:theme="@style/MyMaterialTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/MyMaterialTheme.PopupOverlay"/> 

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

<include layout="@layout/content_search"/> 

enter image description here

+0

make elevazione = 0 –

+0

sopra o sotto? se sopra, è il tuo colorPrimaryDark – Bhargav

+0

@Bhargav sopra la barra dell'app, che è visibile sulla barra di stato. – brettbrdls

risposta

15

Credo che questa domanda sia rivolta al medesimo problema Android appbarlayout elevation appears in status bar

Possibili soluzioni:

Il layout root dovrebbe avere android:fitsSystemWindows="true" in ogni momento, in caso contrario l'interfaccia utente non sarà disegnare dietro barra di stato.

Ora avvolgere il AppBarLayout all'interno di un altro CoordinatorLayout che ha

android:fitsSystemWindows="false".

Ciò impedirà all'ombra di traboccare nella barra di stato.

+0

Infine, grazie mille! – brettbrdls

+0

@brettbrdls, non penso che questa soluzione funzioni ora in AppCompat v24.0.0 –

+0

Cosa succede se il mio layout principale è il CoordinatorLayout? Ho provato a confezionarlo in un altro layout, ma in questo caso la barra di stato è bianca mentre dovrebbe essere rossa (colorPrimaryDark) – Chapz

5

Aggiungi elevazione 0DP a AppBarLayout

<android.support.design.widget.AppBarLayout 
android:id="@+id/app_bar_layout" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
app:elevation="0dp"> 
+4

Ma è possibile rimuovere solo l'ombra sopra la barra dell'app e non la parte sottostante? – brettbrdls

5

Chiama il seguente metodo nello onCreate dell'attività con il colore della barra di stato desiderato.

public void changeStatusBarColor(String hexColor) 
    { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     Window window = getWindow(); 
     window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
     window.setStatusBarColor(Color.parseColor("#AD2525")); 
    } 
} 

XML

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context="com.example.bharath.myapplication.MainActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

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

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#AD2525" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
    <!-- 
    Other views 
    --> 

</RelativeLayout></android.support.design.widget.CoordinatorLayout> 

Result

+1

Solo la risposta che funziona. Un'altra app suggerente: elevation = "0dp" sconfigge l'oggetto. Grazie – Tony