【发布时间】:2021-05-15 02:10:18
【问题描述】:
我已经为此苦苦挣扎太久了。我用一个基本的 Activity 创建了一个新的 Android 项目,它带有一个 Fragment 上的按钮。我的布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:background="#fff"
android:clipToPadding="false"
android:padding="20dp"
tools:context=".FirstFragment">
<TextView
android:id="@+id/button_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/buttonback"
android:elevation="10dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="Text"
android:textColor="@color/black"
android:translationZ="5dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_other"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:background="@drawable/buttonback"
android:elevation="10dp"
android:text="Button"
android:textColor="@color/black"
android:translationZ="5dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_first" />
</androidx.constraintlayout.widget.ConstraintLayout>
无论我尝试什么按钮投影都不会改变。高程、TranslationZ、更改主题...始终只是按钮周围略微可见的轮廓。我已经尝试过在 SO 上发布的所有内容,例如 this popular post,但没有任何效果或改变投影。似乎谷歌正在强制按钮没有阴影,因为 textView 阴影确实有效。这里有 2 个视图,一个 textview 和一个具有相同属性的按钮:
textview 在顶部,并且有我想要的阴影。那么诀窍是什么?如何在按钮上获得相同的阴影?顺便说一句,当我按下按钮时似乎确实有阴影,但我希望按钮在未按下时有阴影。
PS。令人讨厌的是,按钮阴影出现在布局设计编辑器中……但在设备上编译和运行时不会出现。
【问题讨论】:
-
@WhatAJerk,该帖子建议创建一个假阴影对象并将其放在按钮后面。我不敢相信这将是正确的解决方案。动画或按下按钮时看起来不太好