AppCompat v21 Toolbar HöhenvorgeLutscher

? Tristan Vanderaerden @ | Original: StackOverFlow

Zunächst einmal, ich weiß, dass diese Frage bereits gestellt wurde, aber es wurde vorher nicht beantwortet worden. Ich hoffe jemand kann mir eine Antwort geben .

In meiner Anwendung, verwende ich die Toolbar von Appcompat_v7 (API 21) . Dies ist mein Code :

<android.support.v7.widget.Toolbar
    style="@style/DarkActionbarStyle"
    android:id="@+id/toolBar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/actionbar_height" />

Und dies ist in der Symbolleiste Stil, den ich verwenden :

<style name="DarkActionbarStyle" parent="@style/Widget.AppCompat.Toolbar">
    <item name="android:background">?attr/colorPrimary</item>
    <item name="titleTextAppearance">@style/ActionBarTitle</item>
    <item name="android:elevation">2dp</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeActionBarDark</item>
</style>

<style name="ThemeActionBarDark" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="actionBarItemBackground">@drawable/btn_dark_orange</item>
    <item name="selectableItemBackground">@drawable/btn_dark_orange</item>
</style>

Das Problem ist, bedeutet das Höhen nicht vorge Lutscher. Also meine Frage ist : Ist es möglich, einen Schatten unter der Symbolleiste auf Pre- Lutscher -Geräte haben ?



Top 5 Antwort

1hitch.united @

Ich glaube, Sie können, hatte ich ein Problem mit dem CardView Erhebung über das Support- Bibliothek. Damit es funktioniert Ich musste meinen Blick so einrichten.

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:android.support.v7.cardview="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="125dp"
    android:orientation="horizontal"
    android:layout_margin="5dp"
    card_view:cardCornerRadius="5dp"
    android.support.v7.cardview:cardElevation="10dp">
</android.support.v7.widget.CardView>

Also ich denke, Sie sollten versuchen Sie es wie folgt in XML -

android.support.v7.toolbar:elevation="10dp"

Auch hier habe ich nicht testen . Beachten Sie aber, ich hatte die Verwendung der android.support.v7, um es an die Arbeit .

2Alessandro Roaro @

Sie können nicht die Höhe Attribut vor API 21 ( Android Lollipop ) . Sie können jedoch den Schatten programmgesteuert hinzufügen, beispielsweise mit einer benutzerdefinierten Ansicht unterhalb des Toolbar platziert .

For example:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/toolbar"
        android:background="@drawable/shadow"/>

Wo der Schatten ist eine Zeichenfläche mit einem schwarzen Farbverlauf .

3Zielony @

Es ist möglich, reale Schatten haben - animiert und generiert. Die von Lollipop verwendete Methode ist seit Froyo verfügbar . Hardwarebeschleunigung für Schatten Generation verwendet wird, ist seit Honeycomb Ich denke, zur Verfügung. Hier ist, wie es funktioniert:

draw your view to an off-screen bitmap with LightingColorFilter set to 0,0 blur the black shape (the off-screen bitmap) using the ScriptIntrinsicBlur class and elevation value as radius draw the bitmap beneath the view

Es erfordert das Hinzufügen von benutzerdefinierten Höhen Attribute, benutzerdefinierte Ansichten der Lage Rendering Schatten und machen mit Drehbuch und die Kompatibilitätsbibliothek (bei ​​älteren Geräten). Ich werde nicht in die Details eintauchen, denn es gibt viele von ihnen, einschließlich Probleme mit Zusammenstellung und kleinere Performance -Optimierungen . Aber es ist möglich .

Warum gibt es keine Schatten im offiziellen Support-Bibliothek ?

it would require changes in the UI framework as it's impossible to freely draw outside view bounds smooth animation requires a quite good GPU

See:

https://www.youtube.com/watch?v=jbU4SXblO5s https://androidreclib.wordpress.com/2014/11/25/lollipops-shadows-on-gingerbread/ https://github.com/ZieIony/Carbon