在SDK Manager的Android 5.0示例中,有ElevationBasic示例。它显示了两个View对象:一个圆形和一个正方形。该圈子已android:elevation设置为30dp:
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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="match_parent">
<View
android:id="@+id/floating_shape"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginRight="40dp"
android:background="@drawable/shape"
android:elevation="30dp"
android:layout_gravity="center"/>
<View
android:id="@+id/floating_shape_2"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginLeft="25dp"
android:background="@drawable/shape2"
android:layout_gravity="center"/>
</FrameLayout>
在Nexus 9上,按原样运行示例,我们在圆圈上出现了阴影:
如果将小部件类更改为Button,而其他所有属性保持原样,则会丢失圆上的阴影:
问题:
为什么android:elevation行为会改变?这不能归因于背景,因为在两种情况下背景都是相同的。
哪些类支持android:elevation,哪些不支持?例如,使用TextView代替View或Button仍然给我们阴影,因此,行为的这种变化不是在TextView层次上引入的,而是在Button层次上引入的。
从昨天的问题中可以看出,我们如何android:elevation在a上获得荣誉Button?android:allowElevationToWorkAsDocumented="true"我们必须在主题中添加一些价值吗?
至尊宝的传说
PIPIONE
相关分类