gpt4 book ai didi

android:elevation 只有底面有阴影效果,如何让阴影效果显示在顶面?

转载 作者:IT老高 更新时间:2023-10-28 21:59:29 28 4
gpt4 key购买 nike

我在一个activity的底部使用了一个framelayout,为了在fragment上显示阴影效果,我添加了android:elevation。但是阴影效果只出现在底部而不出现在顶部,任何人都可以给我一些建议吗?

<FrameLayout
android:id="@+id/bottom_container"
android:background="#00737f"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:elevation="4dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"/>

最佳答案

有一个技巧可以用来在 View 上方显示阴影。

基本上我们必须使用两个嵌套布局,其中外部布局使用 elevation 转换阴影,内部布局设置 background。然后通过给外层布局设置一个padding,我们可以向下移动内层布局,而不移动阴影,这样更多的阴影变得可见:

<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"
android:elevation="4dp"
android:outlineProvider="bounds"
android:paddingTop="2dp"
android:layout_marginTop="-2dp">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00737f">

<!-- content -->

</FrameLayout>

</FrameLayout>

这里很重要的一点是属性outlineProvider,即使没有设置背景,也需要使外部布局转换阴影。

我们进一步指定一个负的 margin 来补偿填充造成的偏移。根据用例,我们可以省略它。

但是注意:如果我们将 View 移动太多,一些渲染伪影就会变得可见:

android elevation shadow offset examples

Source of this example on Github

关于android:elevation 只有底面有阴影效果,如何让阴影效果显示在顶面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741567/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com