programing

작업 표시줄 아래 그림자 제거

closeapi 2023. 8. 19. 10:20
반응형

작업 표시줄 아래 그림자 제거

저는 액션 바 셜록을 사용합니다.아래 코드 조각은 사용자 지정 코드로 배경을 변경하는 역할을 합니다.

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

또한 액션 막대 셔록(벌집 아래 버전)에도 사용할 수 있습니다.하지만 ICS에는 내가 원하지 않는 액션 바 아래에 그림자가 있습니다.그것을 사라지게 하는 스타일 아이템은 무엇입니까?

그것을 사라지게 하는 스타일 아이템은 무엇입니까?

그림자를 제거하려면 앱 테마에 다음을 추가합니다.

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

업데이트: @Quinny898이 언급했듯이, Android 5.0에서 이것은 변경되었습니다, 당신은 전화해야 합니다.setElevation(0)당신의 액션 바에.과 같이 합니다

getSupportActionBar().setElevation(0);

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>

그런 다음 앱 테마에 이 사용자 지정 작업 표시줄 스타일을 적용합니다.

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

Android 5.0에서는 이 설정이 변경되었으며, 수행 표시줄에서 setElevation(0)을 호출해야 합니다.지원 라이브러리를 사용하는 경우 다음과 같이 호출해야 합니다.

getSupportActionBar().setElevation(0);

창 내용오버레이 스타일 항목의 영향을 받지 않으므로 스타일을 변경할 필요가 없습니다.

더하다app:elevation="0dp" AppBarLayout에서 AppBarLayout appBar 파일입니다.

작업 표시줄Sherlock으로 작업하는 경우

테마에 다음을 추가합니다.

<style name="MyTheme" parent="Theme.Sherlock">
    ....
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    ....
</style>

설정해야 합니다.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>
app:elevation="0dp" 

하지만 아닙니다.

android:elevation="0dp"

안드로이드 L에서 저를 위해 일했습니다.

저도 같은 문제를 가지고 있고, 이 문제를 성공적으로 해결했습니다.표고를 제거할 활동에서 표고를 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);
    .
    .
    }

Kotlin용 솔루션(Android 3.3, Kotlin 1.3.20)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    supportActionBar!!.elevation = 0f
}

Developers의 경우 하십시오.SupportActionBar.Elevation = 0;위해서AppCompatActivity또는ActionBar.Elevation = 0;되지 않는 활동의 에는 다음을 참조하십시오.

Try 이것은 테마를 바꾸지 않고 도움이 되었습니다. 앱바 레이아웃을 레이아웃 안에 넣으십시오.이것이 당신에게 도움이 되기를 바랍니다.

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

추가할 내용toolbar.getBackground().setAlpha(0);OnCreate 메서드 내부로 이동합니다.합니다.android:elevation="0dp" android:background="@android:color/transparent도구 모음 xml 파일로 이동합니다.

, fragment 작업을 fragment 작업을 하다가 .toolbar.getBackground().setAlpha(0);또는 사라지면 xml의 마지막으로 AppBarLayout을 가져와야 합니다. 그래서 fragment, AppBarLayout, relativelayout, relativelayout, relativelayout, relativelayout, relativelayout 중 어느 것을 사용하든.

사용:

outLineAmbientShadowColor="@null"

언급URL : https://stackoverflow.com/questions/12246388/remove-shadow-below-actionbar

반응형