Android 移除导航抽屉上的阴影

Posted

技术标签:

【中文标题】Android 移除导航抽屉上的阴影【英文标题】:Android Remove Shadow On Navigation Drawer 【发布时间】:2015-10-12 15:31:51 【问题描述】:

See here what i mean

您好,我正在使用库存的导航抽屉 v4,我问如何在导航抽屉打开时删除该背景阴影。

这是我的 NavigationDrawerFragment.java 代码

public void setUp(int fragmentId, DrawerLayout drawerLayout) 
    mFragmentContainerView = getActivity().findViewById(fragmentId);
    mDrawerLayout = drawerLayout;

    // set a custom shadow that overlays the main content when the drawer opens
    mDrawerLayout.setDrawerShadow(R.drawable.trasparent, GravityCompat.START);
    // set up the drawer's list view with items and click listener

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeButtonEnabled(true);

这是 MainActivity.xml

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_
    android:layout_>

    <!-- Main layout -->
    <FrameLayout
        android:id="@+id/main_fragment_container"
        android:layout_
        android:layout_ />


    <ImageView
        android:id="@+id/ImageView3_Left"
        android:layout_
        android:layout_
        />

    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_
        android:layout_
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:background="#FFFFFFFF"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"/>

</android.support.v4.widget.DrawerLayout>

【问题讨论】:

【参考方案1】:

我找到了解决方案:D

mDrawerLayout.setScrimColor(getResources().getColor(android.R.color.transparent));

在 MainActivity.java 中添加这个

【讨论】:

【参考方案2】:

这在 androidX 中对我有用

/*Navigation drawer with transparent background*/
drawerLayout.setScrimColor(getResources().getColor(android.R.color.transparent));

/*Remove navigation drawer shadow/fadding*/
drawerLayout.setDrawerElevation(0);

【讨论】:

【参考方案3】:

你可以使用 setDrawerShadow 方法来指向一个透明的drawable:

navigationDrawer.setDrawerShadow(R.drawable.someDrawable, GravityCompat.START);

【讨论】:

您仍然会遇到新版本的 Android 使用高程而不是可绘制阴影的问题。但是可以设置该高度:navigationDrawer.setElevation(0f);

以上是关于Android 移除导航抽屉上的阴影的主要内容,如果未能解决你的问题,请参考以下文章

Android上的自定义导航抽屉

工具栏上的 Android 导航抽屉

多个活动上的 Android 导航抽屉

导航抽屉上的按钮单击

如何通过android上的复选框控制导航抽屉项目

无法在android上的反应导航标题中设置阴影样式(反应本机)