217

actionbarsherlockを使用します。以下のコードは、背景をカスタムのものに変更する役割を果たします。

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

また、actionbarsherlock(ハニカムより下のバージョン)で機能します。しかし、ICSでは、アクションバーの下に不要な影があります。それを消すためのスタイルアイテムは何ですか?

4

14 に答える 14

493

それを消すためのスタイルアイテムは何ですか?

影を取り除くには、これをアプリのテーマに追加します。

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

更新: @ Quinny898が述べたように、Android 5.0ではこれが変更されたためsetElevation(0)、アクションバーを呼び出す必要があります。サポートライブラリを使用している場合は、次のように呼び出す必要があることに注意してください。

getSupportActionBar().setElevation(0);
于 2012-09-03T11:04:48.583 に答える
146

Android 5.0の場合、スタイルに直接設定する場合は、次を使用します。

<item name="android:elevation">0dp</item>

およびサポートライブラリの互換性の使用:

<item name="elevation">0dp</item>

AppCompatライトテーマのスタイルの例:

<style name="Theme.MyApp.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <!-- remove shadow below action bar -->
    <!-- <item name="android:elevation">0dp</item> -->
    <!-- Support library compatibility -->
    <item name="elevation">0dp</item>
</style>

次に、このカスタムActionBarスタイルをアプリのテーマに適用します。

<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/Theme.MyApp.ActionBar</item>
</style>

5.0より前のAndroidの場合は、これもアプリのテーマに追加します。

<!-- Remove shadow below action bar Android < 5.0 -->
<item name="android:windowContentOverlay">@null</item>
于 2014-11-29T14:15:45.777 に答える
104

Android 5.0ではこれが変更されたため、アクションバーでsetElevation(0)を呼び出す必要があります。サポートライブラリを使用している場合は、次のように呼び出す必要があることに注意してください。

getSupportActionBar().setElevation(0);

windowContentOverlayスタイルアイテムの影響を受けないため、スタイルを変更する必要はありません。

于 2014-10-29T10:10:58.127 に答える
55

app:elevation="0dp"appbarで影を隠すためのAppBarLayoutを追加します

于 2016-01-14T15:08:11.030 に答える
39

ActionBarSherlockを使用している場合

あなたのテーマにこれを追加してください:

<style name="MyTheme" parent="Theme.Sherlock">
    ....
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    ....
</style>
于 2012-12-10T10:01:42.867 に答える
27

app:elevation="0dp"に設定する必要がありますandroid.support.design.widget.AppBarLayout。そうすれば機能します。

<android.support.design.widget.AppBarLayout
    app:elevation="0dp"... >

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


    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>
于 2016-09-20T07:31:08.933 に答える
17
app:elevation="0dp" 

だがしかし

android:elevation="0dp"

アンドロイドLで私のために働いた

于 2017-02-24T19:36:07.330 に答える
3

私はこれと同じ問題を抱えており、この問題をうまく解決しました。標高を削除するアクティビティで、標高を0浮動小数点値に変更するだけです。

と呼ばれるアクティビティで変更したい場合は、最初MyActivity.javaに取得する必要があります。ActionBar

最初にActionBarクラスをインポートします

import android.support.v7.app.ActionBar;

インポート後、アクションバーの変数を初期化し、その高度を0に設定する必要があります。

 private ActionBar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    .
    .
    toolbar=getSupportActionBar();
    toolbar.setElevation(0);
    .
    .
    }
于 2017-04-26T11:40:37.190 に答える
2

Kotlinのソリューション(Android 3.3、Kotlin 1.3.20)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    supportActionBar!!.elevation = 0f
}
于 2019-01-30T22:32:03.307 に答える
1

Xamarin開発者の場合、非互換性アクティビティの場合または非互換アクティビティの場合は:SupportActionBar.Elevation = 0;を使用してくださいAppCompatActivityActionBar.Elevation = 0;

于 2017-12-27T14:12:46.173 に答える
1

これを試してみてくださいテーマを変更せずに私を助けました。AppBarLayoutを任意のレイアウト内に配置します。これがお役に立てば幸いです。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="false"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        android:layout_height="?attr/actionBarSize"
       android:background="@color/white">
        <ImageView
            android:src="@drawable/go_grocery_logo"
            android:layout_width="108dp"
            android:layout_height="32dp" />
    </android.support.v7.widget.Toolbar>


</android.support.design.widget.AppBarLayout>
</RelativeLayout>
于 2019-08-08T06:45:15.173 に答える
1

toolbar.getBackground().setAlpha(0);これをOnCreateメソッド内に追加します。android:elevation="0dp" android:background="@android:color/transparent this:をツールバーのxmlファイルに追加 します。

于 2020-05-04T22:26:14.570 に答える
0

フラグメントで作業していて、設定toolbar.getBackground().setAlpha(0);または消失後に消えた場合は、AppBarLayoutをxmlの最後に移動する必要があると思います。そのため、フラグメント、AppBarLayout、relativelayout / constraint/linearのどちらを使用してもかまいません。

于 2017-07-24T06:30:43.850 に答える
0

使用する:

outLineAmbientShadowColor="@null"
于 2020-12-16T15:31:45.617 に答える