2014-11-27 10 views
7

Ich möchte ActionBar Schatten deaktivieren, aber nur in einem Activity. Wenn ich diesen Code verwende, ändert sich die gesamte Anwendung.Entfernen unteren Schatten auf ActionBar - Android

<style name="MyAppTheme" parent="android:Theme.Holo.Light"> 
    <item name="android:windowContentOverlay">@null</item> 
</style> 

habe ich versucht, diesen Code, aber es funktioniert nicht

getSupportActionBar().setElevation(0); 

Jeder Vorschlag ...?

Antwort

16

Sie können Ihren eigenen Stil für Aktivität für diesen Satz:

<!-- Activity with ActionBar shadow --> 
<activity 
    android:name=".ShadowActivity" 
    android:theme="@style/MyAppTheme"/> 

<!-- Activity without ActionBar shadow --> 
<activity 
    android:name=".NoShadowActivity" 
    android:theme="@style/MyNoActionBarShadowTheme"/> 

Oder Sie können das richtige Thema gesetzt:

<!-- Your main theme with ActionBar shadow. --> 
<style name="MyAppTheme" parent="android:Theme.Holo.Light"> 
    .... 
</style> 

<!-- Theme without ActionBar shadow (inherits main theme) --> 
<style name="MyNoActionBarShadowTheme" parent="MyAppTheme"> 
    <item name="windowContentOverlay">@null</item> 
    <item name="android:windowContentOverlay">@null</item> 
</style> 

So in Manifest.xml können Sie verschiedenen Stil für alle Aktivitäten eingestellt programmgesteuert in onCreate() Methode:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    setTheme(R.style.MyNoActionBarShadowTheme); 
    super.onCreate(savedInstanceState); 

    //... 
} 
+1

ich nicht wusste, dass ich verschiedene Stile für Aktivitäten einstellen :) – KiKo

+0

Jede Art und Weise zu tun, das gleiche ohne XML zu verwenden? Nur über Code? –

7

Erstellen Sie ein neues Thema, das Ihr Ap erbt p Thema:

<style name="MyAppTheme.NoShadow" parent="MyAppTheme"> 
    <item name="android:windowContentOverlay">@null</item> 
</style> 

und lassen Sie Ihre Aktivität dieses Thema verwenden. In Ihrem Manifest:

<activity 
    android:name="...MyShadowlessActivity" 
    android:theme="@style/MyAppTheme.NoShadow" .../> 
8

hinzufügen App: Höhe = "0DP" appbarlayout wie unten dargestellt:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    app:elevation="0dp"> 

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

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

danke, das ist einfach und funktionierte für mich – moritzw

Verwandte Themen