我在CardView中有一个RelativeLayout,我想在Android Lollipop中提升但是没有显示高程(阴影没有显示):

我的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android.support.v7.cardview="http://schemas.android.com/apk/res-auto"
style="@style/CardViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="5dp"
android:orientation="horizontal"
android.support.v7.cardview:cardElevation="5dp">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_selector"
android:paddingBottom="5dp">
<ImageView
android:id="@+id/article_thumb"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/article_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/article_thumb"
android:layout_marginEnd="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginStart="10dp"
android:ellipsize="middle"
android:linksClickable="false"
android:longClickable="false"
android:text="@string/title"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:textColor="@color/black" />
<TextView
android:id="@+id/article_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/article_title"
android:layout_alignStart="@+id/article_title"
android:layout_below="@+id/article_title"
android:layout_marginTop="10dp"
android:text="@string/date"
android:textAppearance="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small"
android:textColor="@color/gray" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/article_title"
android:layout_alignRight="@+id/article_title"
android:layout_below="@+id/article_title"
android:layout_marginTop="10dp"
android:elevation="30dp"
android:translationZ="30dp">
<ImageView
android:id="@+id/redbubble"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop"
android:src="@drawable/redbubble" />
<TextView
android:id="@+id/article_comment_bubble"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" …Run Code Online (Sandbox Code Playgroud) android material-design android-cardview android-5.0-lollipop android-elevation
我正在尝试使用android:elevation在我的布局上应用阴影,但它不适用于Android pre lolipop,是否有任何替代方案.提前致谢.
最近,我惊讶于一个问题。在我的android手机上,具有相同高度的列表或滚动视图的元素具有与其位置相关的不同阴影。例如,每当屏幕底部的视图具有更暗和更强的阴影时,屏幕顶部的视图将具有较小的光影。这是Google Keep应用程序的屏幕截图:
因此,我认为这完全是因为Google Keep应用程序。也许Google的家伙决定为他们的应用程序添加阴影。因此,我创建了一个示例应用程序。
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
<TextView
style="@style/AppButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Test"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的风格:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item …Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试使用以下代码将阴影应用于线性布局
if (<some condition>)
layout.setElevation(4);
但是此调用需要API级别21才能工作.如何将阴影应用于版本<5.0的设备的布局?可能吗?
我知道这是材料设计的一部分,这就是为什么我只想知道是否有办法在以前的版本中实现类似的东西,谢谢:)
我正在ViewPager内的TabLayout上设置高程,但根本没有显示。我在stackoverflow上尝试了很多答案,但无法解决问题。在CoordinatorLayout中设置android:clipToPadding =“ false”也无法解决问题。任何帮助,将不胜感激。这是我正在使用的布局的xml,但现在正在提升高度:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<View
android:id="@+id/statusBarBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:clipToPadding="false" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</ScrollView>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill"
app:elevation="3dp" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud) 在花了几个小时研究这个问题后,我决定提出问题,而不是在这样一个(看似)简单的任务上浪费更多时间。
我正在尝试实现一个带有透明背景且没有 Broder 的 FloatingActionButton,以仅显示一个自定义图标。我知道材料设计不鼓励它,但我需要这样做。
我面临的问题是有阴影显示,这是我不想要的。由于我将高程设置为 0dp,我不知道它是如何到达那里的,因此我不知道如何将其删除。
这是包含 FAB 的片段的代码:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_sample"
android:elevation="0dp"
android:fitsSystemWindows="true">
<android.support.v7.widget.RecyclerView
android:id="@+id/fragment_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:gravity="center"
android:padding="10dp"
android:stretchMode="columnWidth"
android:verticalSpacing="25dp"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
style="@style/AppTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:adjustViewBounds="true"
android:elevation="0dp"
android:fitsSystemWindows="true"
android:scaleType="fitCenter"
app:borderWidth="0dp"
app:fabSize="normal"
app:layout_anchorGravity="bottom|center"
app:layout_behavior="ScrollAwareFABBehavior"
/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的 AppTheme:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fitsSystemWindows">true</item>
<item name="android:spotShadowAlpha">0</item>
<item name="android:shadowRadius">0</item>
<item name="android:ambientShadowAlpha">0</item>
<item name="selectableItemBackgroundBorderless">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我在其中设置透明性的 Fragment 的 onCreateView:
@Override
public final View onCreateView(final LayoutInflater inflater, final ViewGroup …Run Code Online (Sandbox Code Playgroud) android shadow material-design floating-action-button android-elevation
在单独的应用程序中测试时,CardView高程可以正常工作,但是当使用cardView的相同代码来制作RecyclerView的项目时,不再出现高程.
以下是RecyclerView列表项的代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="10dp">
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
card_view:cardUseCompatPadding="true"
app:cardMaxElevation="6dp"
card_view:cardCornerRadius="3dp"
card_view:cardElevation="24dp">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/thumbnail"
android:layout_width="match_parent"
android:layout_height="250dp" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/thumbnail"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
这是我的主要活动xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/bitmap"
android:layerType="software"
android:padding="10dp"
tools:context="com.example.android.vikramadityastimeline.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/card_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud) android android-cardview android-elevation android-recyclerview
现在我有下一个矩形:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="28dp" />
<gradient
android:endColor="#FFFFFF"
android:gradientRadius="20dp"
android:startColor="#FFFFFF"
android:type="linear" />
<size
android:width="106dp"
android:height="106dp" />
<stroke
android:width="1dp"
android:color="#0189ff" />
</shape>
Run Code Online (Sandbox Code Playgroud)
并得到下一个结果:
问:如何添加阴影/高程而不是描边?