无法在三星s8 +中将DrawerLayout背景变为透明

问题描述 投票:6回答:2

我在我的应用程序中使用DrawerLayout。我使用NavigationView获取导航抽屉的内容,并使用下面的代码片段将其背景设置为透明。

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start|center"
    android:background="@android:color/transparent">

</android.support.design.widget.NavigationView>

在三星s8 +当我打开抽屉时,它在末端显示一个垂直条。当我从NavigationView中删除透明度时进行调试时,我发现三星s8 +除了背景外还包含灰色条。当我在Red mi 3s上部署相同的代码时,它工作得很好,它只有一个背景。

三星s8 +抽屉bg enter image description here

Redmi 3s抽屉bg enter image description here

三星s8 +抽屉bg透明enter image description here

Redmi 3s抽屉bg透明enter image description here

请帮我删除这个垂直条。

android android-layout drawerlayout
2个回答
0
投票

我现在无法运行代码。不过我相信这会奏效。

navigationView.getBackground().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SOURCE);

-1
投票

在版本22.1.0中添加的setDrawerShadow void setDrawerShadow(Drawable shadowDrawable,int gravity)设置用于左或右阴影的简单drawable。提供的drawable必须具有非零的固有宽度。对于API 21及更高版本,将在抽屉上设置高程,而不是使用提供的阴影可绘制。

请注意,为了更好地支持从左到右和从右到左的布局方向,可以使用API​​ 17的资源限定符“ldrtl”定义RTL布局的绘图(除了LTR布局中的布局)。以上重力START。或者,对于API 23及更高版本,drawable可以自动镜像,使得drawable将在RTL布局中镜像。

https://developer.android.com/reference/android/support/v4/widget/DrawerLayout#setDrawerShadow(int,%20int)

使用透明色R.drawable.trans创建颜色可绘制或矩形形状,然后像这样使用它:

navigationDrawer.setDrawerShadow(R.drawable.trans, GravityCompat.END);
© www.soinside.com 2019 - 2024. All rights reserved.