2016-02-29 5 views
7

Ich möchte die Statusleiste durch Hinzufügen von <item name="android:statusBarColor">@android:color/transparent</item> zu v21/styles.xml auf style name="AppTheme.NoActionBar" transparent machen, aber ich bekomme immer einen Schatten über der App-Leiste, ist es möglich, es zu entfernen?Wie entferne ich den Schatten über der App-Leiste?

EDIT: Ok Ich denke, die Lösung ist es, die App-Leiste die Statusleiste Platz zu bewegen und die App-Leiste eines zusätzlichen dp zu erweitern, so dass meine Frage ist, ist es möglich, die App zu verschieben oder zu erweitern Balkenhöhe nach oben?

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 Höhe = 0 –

+0

oben oder unten? wenn darüber dann ist es Ihre ColorPrimaryDark – Bhargav

+0

@Bhargav über der App-Leiste, die in der Statusleiste sichtbar ist. – brettbrdls

Antwort

15

Ich glaube, diese Frage zu demselben Problem Android appbarlayout elevation appears in status bar

01 zeigt

Mögliche Lösungen:

Ihr Wurzel Layout android:fitsSystemWindows="true" jederzeit haben sollte, da ansonsten Ihre UI wird nicht hinter Statusleiste ziehen.

nun die AppBarLayout in einem anderen CoordinatorLayout wickeln die

android:fitsSystemWindows="false" hat.

Dies verhindert, dass der Schatten in die Statusleiste überläuft.

+0

Endlich, vielen Dank! – brettbrdls

+0

@brettbrdls, ich glaube nicht, dass diese Lösung jetzt in AppCompat v24.0.0 funktioniert. –

+0

Was ist, wenn mein Root-Layout das CoordinatorLayout ist? Ich habe versucht, es in ein anderes Layout zu wickeln, aber in diesem Fall ist die Statusleiste weiß, während es rot sein sollte (colorPrimaryDark) – Chapz

5

Höhen hinzufügen 0DP zu 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

Aber ist es möglich, nur den Schatten über der App-Leiste und nicht den unteren Teil zu entfernen? – brettbrdls

5

Rufen Sie die untenstehende Methode onCreate Ihrer Aktivität mit der gewünschten Statusleiste Farbe.

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

Nur Antwort, die funktioniert. Eine andere vorgeschlagene App: Elevation = "0dp" besiegt das Objekt. Vielen Dank – Tony