如何在android中为选项卡布局或工具栏添加底部阴影
嗨,我需要在我的选项卡布局下添加阴影(如在skype中) 我的活动xml:如何在android中为选项卡布局或工具栏添加底部阴影,android,xml,toolbar,shadow,android-elevation,Android,Xml,Toolbar,Shadow,Android Elevation,嗨,我需要在我的选项卡布局下添加阴影(如在skype中) 我的活动xml: <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/splashGreenTop"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="0dp"
android:minHeight="?attr/actionBarSize" />
<FrameLayout
android:layout_width="match_parent"
android:layout_below="@+id/tab_layout"
android:id="@+id/tabContainer"
android:layout_height="match_parent" />
</RelativeLayout>
我该怎么做?
提前感谢。只需将标高添加到表格布局中即可(0dp-25dp)。有关高程的详细信息,请阅读指南
android:elevation="10dp"
编辑:
将其添加到您的表格布局和工具栏中
<android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/splashGreenTop"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:elevation="10dp" />
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:elevation="10dp"/>
尝试在TabLayout和Toolbar之间添加一个简单视图。将该视图的背景设置为模拟阴影的渐变
Shadow.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#20000000"
android:endColor="@android:color/transparent"
android:angle="90">
</gradient>
</shape>
这是一个很好的选项,可以在工具栏下方添加阴影
在所需布局的表格下方添加视图
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/splashGreenTop"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="0dp"
android:minHeight="?attr/actionBarSize" />
<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_below="@+id/tab_layout"
android:background="@drawable/toolbar_dropshadow" />
<FrameLayout
android:layout_width="match_parent"
android:layout_below="@+id/tab_layout"
android:id="@+id/tabContainer"
android:layout_height="match_parent" />
</RelativeLayout>
根据需要更改startcolor
和endcolor
将高程添加到表格布局中
实际上有一个非常简单的解决方案:
只需将工具栏和TabLayout放在AppBarLayout的内部。
例如:
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ToolbarTheme"
app:titleTextAppearance="@style/ThemeOverlay.AppCompat.ActionBar"
android:background="@color/colorPrimary"/>
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</android.support.design.widget.AppBarLayout>
这对我来说非常有效,这是组合应用程序/工具栏和表格布局的常用方法。您可以在默认情况下有阴影的AppBarLayout中将表格布局作为子项添加,或者您可以通过以下方式指定阴影深度:App:elevation=“xdp”
使用app:elevation=“0dp”
移除阴影。@puko正如我所说的,将提升添加到您的工具栏中
too@puko也可以通过高程值指定阴影的级别。skype屏幕截图的高程值可能为4-8dp。阅读我建议的材料设计指南,它非常有用!为什么工具栏和表格布局有不同的背景?splashGreenTop和colorPrimary?这个答案没有意义,工具栏和TableLayout都会有阴影,工具栏和桌面之间不应该有阴影tablayout@user924这是有意义的,因为提升不会添加阴影,而是提升视图(将其视为z索引)。环境光和点光源使阴影出现。如果两个视图具有相同的标高,那么它们之间就不会有阴影。我有一个问题与你的问题类似。。你有办法解决这个问题吗?你能读懂我的问题吗?有工具栏支持的完整示例,我认为它行不通谢谢!我不知道为什么这个答案有很多选票,当它说要为工具栏和表格布局设置高程时
android:elevation="15dp"
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ToolbarTheme"
app:titleTextAppearance="@style/ThemeOverlay.AppCompat.ActionBar"
android:background="@color/colorPrimary"/>
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="xdp">
<android.support.v7.widget.Toolbar
...
/>
<android.support.design.widget.TabLayout
...
/>
</android.support.design.widget.AppBarLayout>