Ich benutze Actionbarsherlock. Der folgende Code ist dafür verantwortlich, den Hintergrund in einen benutzerdefinierten zu ändern.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
Und es funktioniert für Actionbarsherlock (bei Versionen unter Honeycomb). Aber in ICS habe ich einen Schatten unter der Aktionsleiste, den ich nicht möchte. Was ist das Stilelement, um es verschwinden zu lassen?
android
android-actionbar
actionbarsherlock
Michał K.
quelle
quelle
getSupportActionBar().setElevation(0);
funktioniert nicht. Sie haben also<item name="android:windowContentOverlay">@null</item>
Ihr Anwendungsthema eingegeben. Ich hatte das ähnliche Problem. Jetzt habe ich beide. setElevation from und fügte windowContentOverlay-Element im Anwendungsthema hinzu. setElevation funktioniert für Android 5.0 und höher, während das andere für Pre-Lollipop funktioniert. Prost!Wenn Sie für Android 5.0 direkt einen Stil festlegen möchten, verwenden Sie:
und für die Kompatibilität der Support-Bibliothek verwenden Sie:
Beispiel für einen Stil für ein AppCompat-Lichtthema:
Wenden Sie dann diesen benutzerdefinierten ActionBar-Stil auf Ihr App-Thema an:
Fügen Sie dies für Android vor 5.0 auch Ihrem App-Thema hinzu:
quelle
windowContentOverlay
Thema der Aktionsleiste hinzugefügt habe , nicht das Thema der App.android:elevation
für Lollipop-Geräte zu tun ). Ich kann es mit diesem Ansatz nicht schaffen. Ich glaube, es wäre ziemlich gerade. Geben Sie einen Wert ungleich Null für Höhenattribute ein, und das wäre es.android:windowContentOverlay
Pre-Lollipop-API um? Ich kann nicht kompilieren, wenn mein minSDK vor dem Lutscher ist, aber das Ziel ist 21?<style name="Theme.MyApp.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
ohnestyle/
inparent
Attribut verwendet habe.Unter Android 5.0 hat sich dies geändert. Sie müssen setElevation (0) in Ihrer Aktionsleiste aufrufen. Beachten Sie, dass Sie, wenn Sie die Support-Bibliothek verwenden, diese folgendermaßen aufrufen müssen:
Das Stilelement windowContentOverlay ist davon nicht betroffen, sodass keine Änderungen an den Stilen erforderlich sind
quelle
app:elevation="0dp"
Fügen Sie in AppBarLayout hinzu, um Schatten in der Appbar auszublendenquelle
Wenn Sie mit ActionBarSherlock arbeiten
Fügen Sie in Ihrem Thema Folgendes hinzu:
quelle
Sie müssen festgelegt
app:elevation="0dp"
in derandroid.support.design.widget.AppBarLayout
und es dann funktioniert.quelle
aber nicht
arbeitete für mich auf Android L.
quelle
Ich habe das gleiche Problem und habe dieses Problem erfolgreich gelöst. Sie müssen lediglich die Höhe in der Aktivität, in der Sie die Höhe entfernen möchten, auf 0 Gleitkommawert ändern.
Wenn Sie es in einer aufgerufenen Aktivität ändern möchten,
MyActivity.java
müssen Sie dieActionBar
erste erhalten.Importieren Sie zuerst die
ActionBar
KlasseNach dem Import müssen Sie eine Variable der Aktionsleiste initialisieren und ihre Höhe auf 0 setzen.
quelle
Für Xamarin-Entwickler verwenden Sie bitte:
SupportActionBar.Elevation = 0;
fürAppCompatActivity
oderActionBar.Elevation = 0;
für nicht kompatible Aktivitätenquelle
Lösung für Kotlin (Android 3.3, Kotlin 1.3.20)
quelle
Versuchen Sie dies, es hat mir geholfen, ohne das Thema zu ändern. Platzieren Sie Ihr AppBarLayout in einem beliebigen Layout. Hoffentlich hilft Ihnen dies
quelle
Für diejenigen, die an Fragmenten arbeiten und es nach dem Setzen
toolbar.getBackground().setAlpha(0);
oder Verschwinden verschwunden ist, denke ich, dass Sie Ihr AppBarLayout auf das letzte in der XML bringen müssen, also sein Fragment dann AppBarLayout dann relativelayout / Einschränkung / linear, je nachdem, was Sie verwenden.quelle
Fügen Sie dies
toolbar.getBackground().setAlpha(0);
der OnCreate-Methode hinzu.android:elevation="0dp" android:background="@android:color/transparent
Fügen Sie Folgendes hinzu: zu Ihrer Symbolleisten-XML-Datei.quelle