2014-11-27 6 views
7

मैं ActionBar छाया अक्षम करना चाहता हूं लेकिन केवल एक Activity में अक्षम करना चाहता हूं। अगर मैं इस कोड का उपयोग करता हूं तो यह पूरे अनुप्रयोग में बदल जाएगा।एक्शनबार पर नीचे छाया को हटा रहा है - एंड्रॉइड

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

मैं इस कोड की कोशिश की, लेकिन यह काम नहीं कर रहा

getSupportActionBar().setElevation(0); 

कोई भी सुझाव ...?

उत्तर

16

आप इस के लिए गतिविधि के लिए अपनी खुद की शैली सेट कर सकते हैं:

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

तो Manifest.xml में आप अलग शैली सभी गतिविधियों के लिए सेट कर सकते हैं:

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

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

या आप सही विषय निर्धारित कर सकते हैं प्रोग्रामेटिक रूप से ऑनक्रेट() विधि:

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

    //... 
} 
+1

मुझे पता नहीं था कि मैं गतिविधियों :) – KiKo

+0

करने के लिए किसी भी तरह के लिए विभिन्न शैलियों सेट कर सकते हैं कि एक्सएमएल का उपयोग किए बिना वही बात? केवल कोड के माध्यम से? –

7

एक नई थीम बनाएं जो आपके एपी को प्राप्त करे पी विषय:

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

और अपनी गतिविधि को इस विषय का उपयोग करने दें। अपने मेनिफ़ेस्ट में: appbarlayout को ऊंचाई = "0dp" के रूप में नीचे दिखाया गया है:

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

ऐप जोड़ें

<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

धन्यवाद, यह आसान है और मेरे लिए काम किया है – moritzw

संबंधित मुद्दे