2014-11-27 6 views
7

Chcę wyłączyć cień ActionBar, ale tylko w jednym Activity. Jeśli użyję tego kodu, będzie to zmiana w całej aplikacji.Usuwanie dolnego cienia na pasku akcji - Android

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

Próbowałem ten kod, ale nie działa

getSupportActionBar().setElevation(0); 

... Wszelkie sugestie?

Odpowiedz

16

Można ustawić swój własny styl na aktywność tego:

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

Więc w manifest.xml można ustawić inny styl dla wszystkich działań:

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

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

Albo można ustawić odpowiednią kompozycję programowo w trybie onCreate():

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

    //... 
} 
+1

Nie wiedziałem, że mogę ustawić różne style działania :) – KiKo

+0

jakikolwiek sposób zrobić to samo bez użycia XML? Tylko za pomocą kodu? –

7

Utwórz nowy motyw, który dziedziczy Ap p temat:

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

i niech twoja aktywność korzysta z tego tematu. W swoim manifeście:

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

Dodaj aplikację Wysokość = „0DP” do appbarlayout jak pokazano poniżej:

<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

dziękuję, to proste i działało dla mnie – moritzw