移除布局背景

问题描述

嘿,我在应用cornerradiis后在cardview中使用constraintlayout我想删除额外的背景,我试图将cardview和constraintlayout背景设置为透明,但没有任何改变。布局是一个bottomsheetfragment。 Picture of the app

片段布局

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="50dp"
        app:cardElevation="20dp">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:context="com.example.virtualmusem.views.LoginFragment">


            <ImageView
                android:id="@+id/app_icon"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_marginRight="14dp"
                android:src="@drawable/museumicon"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintRight_toRightOf="@+id/email"
                app:layout_constraintTop_toTopOf="parent" />

            <TextView
                android:id="@+id/singin_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="14dp"
                android:text="@string/please_sing_in"
                android:textColor="@android:color/black"
                android:textSize="25sp"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />


            <EditText
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="14dp"
                android:background="@drawable/edit_text_login_background"
                android:drawableEnd="@drawable/ic_baseline_alternate_email_24"
                android:hint="@string/email"
                android:padding="15dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/singin_text" />

            <EditText
                android:id="@+id/password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="14dp"
                android:layout_marginTop="35dp"
                android:background="@drawable/edit_text_login_background"
                android:drawableEnd="@drawable/ic_baseline_lock_24"
                android:hint="@string/password"
                android:inputType="textPassword"
                android:padding="15dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/email" />

            <Button
                android:id="@+id/admin_btn"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="60dp"
                android:layout_marginRight="15dp"
                android:layout_marginBottom="300dp"
                android:background="@drawable/custom_button"
                android:padding="8dp"
                android:text="@string/login"
                android:textAllCaps="false"
                android:textSize="15sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/password" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.cardview.widget.CardView>
</layout>

解决方法

角半径在 cardview 上而不是 BottomSheet 上,因此也尝试将角半径添加到工作表中。

对于 MaterialComponents,您可以按如下方式进行,否则只需简单搜索即可。

<style name="ThemeOverlay.BottomSheetDialog" parent="ThemeOverlay.MaterialComponents.Dialog">
    ....
    <item name="shapeAppearanceLargeComponent">@style/AppShapeAppearance.LargeComponent</item>
</style>

在LargeComponent 样式中设置cornerRadius

<style name="AppShapeAppearance.LargeComponent" parent="ShapeAppearance.MaterialComponents.LargeComponent">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">16dp</item>
</style>

然后将叠加层添加到您的主题中

<item name="bottomSheetDialogTheme">@style/ThemeOverlay.BottomSheetDialog</item>

还有其他方法可以做到,除了底线,也可以将半径添加到底部表格或将底部表格的背景设置为透明。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...