Java 如何删除应用程序栏上方的阴影?
我想通过在Java 如何删除应用程序栏上方的阴影?,java,android,xml,statusbar,appbar,Java,Android,Xml,Statusbar,Appbar,我想通过在style name=“AppTheme.NoActionBar”上的v21/styles.xml中添加@android:color/transparent使状态栏透明,但我一直在应用程序栏上方看到阴影,是否可以删除它 编辑: 好的,我认为解决方案是移动占据状态栏空间的应用程序栏,并将应用程序栏扩展一个附加dp以匹配其大小,因此我的问题是,是否可以向上移动或扩展应用程序栏高度 activity_search.xml <android.support.design.widget.A
style name=“AppTheme.NoActionBar”
上的v21/styles.xml中添加@android:color/transparent
使状态栏透明,但我一直在应用程序栏上方看到阴影,是否可以删除它
编辑:
好的,我认为解决方案是移动占据状态栏空间的应用程序栏,并将应用程序栏扩展一个附加dp以匹配其大小,因此我的问题是,是否可以向上移动或扩展应用程序栏高度
activity_search.xml
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/MyMaterialTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimary"
app:popupTheme="@style/MyMaterialTheme.PopupOverlay"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_search"/>
将立面0dp添加到AppBarLayout
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp">
我相信这个问题也指向了同样的问题
可能的解决办法:
您的根布局应始终具有android:fitsSystemWindows=“true”
,否则您的UI将不会落后于状态栏
现在将AppBarLayout
包装在另一个CoordinatorLayout
中,该布局具有
android:fitsystemwindows=“false”
这将防止阴影溢出到状态栏。使用所需的状态栏颜色在活动的onCreate中调用下面的方法
public void changeStatusBarColor(String hexColor)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.parseColor("#AD2525"));
}
}
XML
高于还是低于?如果上面是你的colorPrimaryDark@Bhargav是的,这是你的colorPrimaryDark属性,但是如果你要在它下面画一个导航抽屉,那么状态栏应该是transparent@Bhargav是的,我之所以想添加@android:color/transparent,是因为我接下来将实现一个导航抽屉。请在此处发布该布局的代码,但是否可以只删除应用程序栏上方的阴影,而不删除下面的部分?@brettbrdls,我认为该解决方案现在在AppCompat v24.0.0中不起作用。如果我的根布局是CoordinatorLayout呢?我尝试用另一个布局包装它,但在这种情况下,状态栏是白色的,而它应该是红色的(colorPrimaryDark),这与根布局无关。将AppBarLayout包装在协调布局中,并设置android:fitsystemwindows=“false”。CoordinatorLayout设计用于与appcompat元素进行特殊交互,因此它自动处理许多事情问题是,将appbar布局包装在另一个CoordinatorLayout中会破坏滚动视图行为,因此RecyclerView现在会覆盖appbar和所有内容。在我的特殊情况下,我试图让一个recyclerview在半透明的导航栏后面运行,而状态栏看起来不像垃圾,状态栏不在导航抽屉的顶部,等等。到目前为止,我尝试的所有操作都至少破坏了其中的一个。唯一有效的答案是。其他建议应用程序:elevation=“0dp”会破坏该对象。谢谢
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.bharath.myapplication.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<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>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#AD2525"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!--
Other views
-->
</RelativeLayout></android.support.design.widget.CoordinatorLayout>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimaryDark"
app:popupTheme="@style/AppTheme.PopupOverlay"
/>
</com.google.android.material.appbar.AppBarLayout>