Android-更改高程时阴影大小不受影响

问题描述 投票:0回答:1

我正在开发针对android Lollipop及更高版本的Android应用程序,并查看了height属性以在元素(即按钮,卡片和底部导航视图)下获得阴影。

我面临的问题是,在XML中更改android:elevation值时,阴影大小不会受到影响。我尝试阅读的内容:

  • 我已经读过,除非视图具有背景(我的确具有该背景(在下面发布),否则高程将不起作用。
  • SO周围的其他问题指出它们根本没有阴影,在我的情况下,我在视图下确实有阴影,但是其大小不受height属性的影响。

关于代码,您可以在我的按钮样式和片段的布局下面找到。

按钮样式

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:app="http://schemas.android.com/apk/res-auto">
    <style name="Search" parent="@android:style/Widget.Button">
        <item name="android:gravity">center_vertical|start</item>
        <item name="android:textColor">@color/lightText</item>
        <item name="android:textSize">@dimen/main_search_textSize</item>
        <item name="android:background">@drawable/main_search</item>
        <item name="android:focusable">true</item>
        <item name="android:clickable">true</item>
        <item name="android:text">@string/search</item>
        <item name="android:elevation">@dimen/main_search_elevation</item>
        <item name="android:drawableStart">@drawable/ic_main_search</item>
        <item name="android:paddingLeft">@dimen/main_search_padding</item>
        <item name="android:paddingRight">@dimen/main_search_padding</item>
        <item name="android:drawablePadding">@dimen/main_search_padding</item>
    </style>
</resources>

片段布局

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingStart="@dimen/activity_horizontal_margin"
    android:paddingEnd="@dimen/activity_horizontal_margin"
    android:background="@color/lightBackground"
    android:clipToPadding="false">

    <androidx.appcompat.widget.AppCompatButton
        style="@style/Search"
        android:layout_width="match_parent"
        android:layout_height="@dimen/main_search_height"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

dimens.xml

<resources>
    <dimen name="activity_horizontal_margin">24dp</dimen>
    <dimen name="activity_vertical_margin">24dp</dimen>

    <dimen name="main_nav_icon_padding">6dp</dimen>

    <dimen name="main_search_height">54dp</dimen>
    <dimen name="main_search_marginTop">72dp</dimen>
    <dimen name="main_search_elevation">24dp</dimen>
    <dimen name="main_search_padding">16dp</dimen>
    <dimen name="main_search_textSize">20sp</dimen>
</resources>

这就是我得到的(无论海拔属性是什么):

Search button screenshot

请注意,长按按钮时阴影确实会改变,并且不会以任何方式被修剪。

因此,什么想法似乎是问题所在?

android android-layout
1个回答
0
投票

嘿,您的问题似乎非常有用,因此我决定尝试一下。我希望这对您有帮助,如果有人有更好的方法可以发布它。

© www.soinside.com 2019 - 2024. All rights reserved.