9

Appcompat v24.0.0 では、アクティビティが表示された後にシャドウ/エレベーションがレンダリングされます。AppbarLayoutまた、 への影の描画にラグが見られやすくなりますAppbarLayout

この遅延は、以前の Appcompat ライブラリ バージョンにはありませんでした。

Appcompat v24.0.0Appcompat v23.4.0の両方を使用してテストしたところ、新しいバージョンでは影の描画がはっきりと見られました。

4

4 に答える 4

15

Chris Banes 氏は次のように述べています

StateListAnimator は現在、すべての高度処理を所有しています。自分でやりたい場合は、null の StateListAnimator を設定し、必要に応じて setElevation() を呼び出します。

したがって、折りたたみ可能でないAppBarLayout場合は、これを使用できます。

<android.support.design.widget.AppBarLayout
    android:stateListAnimator="@null"
    android:elevation="@dimen/design_appbar_elevation">
于 2016-08-05T00:23:27.400 に答える
10

バグや機能ではないと思います。

AppBarLayout の上昇アニメーションの長さはR.integer.app_bar_elevation_anim_duration、デフォルトで によって制御されます150

アニメーションを削除するには、次の手順を実行するだけです。

<integer name="app_bar_elevation_anim_duration" tools:override="true">0</integer>

于 2016-12-14T08:13:23.450 に答える
1

@Vipul Asri から良い回答が得られましたが、appbar_always_elevated.xmlはanimator-v21フォルダーではなくanimator-v11フォルダーに配置する必要があります。AppbarLayoutを持つレイアウトは、v21 フォルダーに配置する必要があります。

要約すると、構造は次のようになります。

-res
   -animator-v11
      -appbar_always_elevated.xml
   -layout
      -a_layout_wich_has_the_appbarlayout.xml
   -layout-v21
      -a_layout_wich_has_the_appbarlayout.xml

2 つのa_layout_wich_has_the_appbarlayout.xmlファイルがあることに注意してください( Android:stateListAnimator プロパティを含む v21 フォルダー内の AppbarLayout と、このプロパティを含まない非v21フォルダーの AppbarLayout )。

見てみましょう:

v21以外のレイアウト フォルダー:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

そして、v21レイアウト フォルダー:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stateListAnimator="@animator/appbar_always_elevated">

編集

AppbarLayoutをTabLayoutと一緒に使用している場合、影は即座に描画されますが、この場合に android:stateListAnimator プロパティを使用している場合、影の表示が少し異なることに注意してください。

于 2016-09-10T00:52:26.677 に答える