具有提升问题的透明cardwiew

cqoc49vn  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(351)

当我想要一个具有一定高度的透明cardview时,结果如下:

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#B3FFFFFF"

    app:cardElevation="8dp"
    app:cardBackgroundColor="#B3FFFFFF"
    app:cardCornerRadius="25dp"
    app:cardUseCompatPadding="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <EditText
            android:id="@+id/folder_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:background="@color/transparent"
            android:gravity="center"
            android:hint="@string/default_folder_name"
            android:importantForAutofill="no"
            android:inputType="text"
            android:padding="10dp"
            android:textAllCaps="false"
            android:textColor="@color/folder_title"
            android:textColorHint="@color/folder_title_hint"
            android:textSize="15sp"
            android:textStyle="bold" />

        <!--this is only for the cardView to give it more space to display the issue-->
        <View
            android:layout_width="150dp"
            android:layout_height="60dp"/>
    </LinearLayout>
</androidx.cardview.widget.CardView>

这个 issue 是因为里面有色差吗 CardView ,应该是这样的:

当我替换 app:cardCornerRadius="25dp" -> app:cardCornerRadius="0dp" ,不需要的色差的大小增加。
是这个吗 issue 仰角是怎么工作的?有解决办法吗?
提前谢谢,

u5rb5r59

u5rb5r591#

您可以在cardview中添加aplha属性以使其透明。

android:alpha="0.6"

值=0到1(0几乎透明)
更新:
把这个加到你的cradview里

card_view:cardBackgroundColor="@android:color/transparent"
card_view:cardElevation="0dp"
ktecyv1j

ktecyv1j2#

CardView 这是不可能的。
这种情况下的解决方法是删除 CardView 设置一个 android:background="@drawable/shadowfile"LinearLayout .
该文件包含 [transparency, elevation, radius] .
res/drawable/shadowfile.xml文件

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- every item add a layer of evaluation to the border, with the padding you define how the evaluation is located around the border-->
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#03000000" />
            <corners android:radius="20dp" />
        </shape>
    </item>    <item>
    <shape>
        <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        <solid android:color="#03000000" />
        <corners android:radius="20dp" />
    </shape>
    </item>    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#03000000" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#03000000" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#03000000" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#03000000" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#03000000" />
            <corners android:radius="20dp" />
        </shape>
    </item>

    <!-- Background -->
    <item>
        <shape>
            <solid android:color="#D2FFFFFF" />
            <corners android:radius="20dp" />
        </shape>
    </item>
</layer-list>
cotxawn7

cotxawn73#

尝试将此添加到您的主题中

<item name="elevationOverlayEnabled">false</item>

相关问题