web-dev-qa-db-ja.com

Android.widget.Toolbar shadowを削除します

API21 + Toolbarの使用:

// Toolbar
Toolbar toolbar = new Toolbar(this);
toolbar.showOverflowMenu();

その影を完全に削除したいです。 setElevation(0)はすでに0を返しているため、getElevation()は何もしません。

マテリアルデザインのリファレンスがあります。

https://material.io/guidelines/layout/structure.html#structure-toolbars

開発参照があります:

https://developer.Android.com/reference/Android/widget/Toolbar.html

しかし、影に関連する情報は表示されません。 Toolbar

質問:Toolbarシャドウを完全に削除/非表示にする方法は?

32
0leg

私は自分で解決策を見つけました:

getActionBar().setElevation(0);

詳細:

https://developer.Android.com/reference/Android/app/Activity.html#getActionBar()

19
0leg

ツールバーのapp:elevation="0dp"の代わりにAndroid:elevationを使用します。動作しない場合は、ツールバーをAppBarLayout内に配置してapp:elevation="0dp"を設定します。

<Android.support.design.widget.AppBarLayout
            Android:id="@+id/appBarLayout"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            app:elevation="0dp">
            ...
</Android.support.design.widget.AppBarLayout>
75
ramin eftekhari

ToolbarまたはAppBarLayoutに属性app:elevation="0dp"を使用して、影を削除します。

#。Toolbarのみを使用している場合は、Toolbarに属性app:elevation="0dp"を追加します。

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:elevation="0dp"/>

#。AppBarLayoutToolbarのコンテナとして使用している場合は、AppBarLayoutに属性app:elevation="0dp"を追加します。

    <Android.support.design.widget.AppBarLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:theme="@style/AppTheme.AppBarOverlay"
        app:elevation="0dp">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </Android.support.design.widget.AppBarLayout>

出力:

enter image description here

UPDATE:

プログラムで削除したい場合は、以下のコードを使用できます:

getSupportActionBar().setElevation(0);

これが役立つことを願っています〜

57
Ferdous Ahamed

Android:elevationの代わりにapp:elevationを試してください

<Android.support.design.widget.AppBarLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/appbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"       
    app:elevation="0dp">
</Android.support.design.widget.AppBarLayout>
8
user1517638
findViewById(R.id.appBarLayout).bringToFront();

私のためにバージョンの問題を解決しました。ありがとう Bjorn

in この質問

3
Goodlife

"#000000"をtoolbarのbackgroundColorに設定します。CoordinatorLayoutおよびAppBarLayoutを使用する場合、contentViewのapp:layout_behavior="@string/appbar_scrolling_view_behavior"を削除する必要があることに注意してください。この基本的な間違いを犯しました。

0
Mingyong Gu

このコードを、Fragmentを非表示にするToolBarに配置します。

@Override
public void onResume() {
    super.onResume();
    ((AppCompatActivity)getActivity()).getSupportActionBar().setElevation(0);
}
0
Aslam Hossin

ツールバーでAppbarLayoutを使用している場合は、AppBarレイアウトでAndroid:elevationの代わりにapp:elevation = "0dp"を使用できます

0