editText 背景设置但在应用程序启动时不显示

editText background set but does not show up when application is launched

我创建了一个登录页面,其中有两个用于用户名和密码的 editText 字段。我还在 activity 中包含了一个 ImageView。 我制作了一个 XML 文件来为 editText 字段制作圆形的白色背景。然而,这并没有奏效,而且仍然是透明的。将创建的 XML 文件的背景更改为简单的白色时,我仍然看不到 editText 字段。

以下是我用于以下内容的代码:

Login.XML

<?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:id="@+id/constraintLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:onClick="Clicked"
    android:padding="10dp"
    android:paddingBottom="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="307dp"
        android:layout_height="63dp"
        android:layout_marginBottom="17dp"
        android:layout_marginEnd="327dp"
        android:layout_marginStart="84dp"
        android:foreground="@drawable/emailsignup"
        android:text="@string/button"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.104"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button2"
        app:layout_constraintVertical_bias="1.0" />

    <Button
        android:id="@+id/button2"
        android:layout_width="293dp"
        android:layout_height="57dp"
        android:layout_marginEnd="146dp"
        android:layout_marginStart="63dp"
        android:layout_marginTop="200dp"
        android:foreground="@drawable/gmailsignup"
        android:text="@string/button2"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintEnd_toStartOf="@+id/imageView"
        app:layout_constraintHorizontal_bias="0.006"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

     <Button
        android:id="@+id/button3"
        android:layout_width="88dp"
        android:layout_height="48dp"
        android:layout_marginBottom="269dp"
        android:layout_marginEnd="253dp"
        android:layout_marginStart="150dp"
        android:layout_marginTop="43dp"
        android:background="@drawable/loginbg"
        android:fontFamily="monospace"
        android:text="@string/LoginText"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toTopOf="@+id/imageView"
        app:layout_constraintEnd_toStartOf="@+id/imageView"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPassword"
        app:layout_constraintVertical_bias="0.0" />

     <EditText
         android:id="@+id/editTextTextPassword"
         android:layout_width="228dp"
         android:layout_height="51dp"
         android:layout_marginBottom="132dp"
         android:layout_marginEnd="95dp"
         android:layout_marginStart="179dp"
         android:layout_marginTop="430dp"
         android:autofillHints=""
         android:background="@drawable/edittextround"
         android:ems="10"
         android:fontFamily="sans-serif-medium"
         android:hint="@string/PasswordHint"
         android:inputType="textPassword"
         android:textSize="24sp"
         app:layout_constraintBottom_toTopOf="@+id/imageView"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.978"
         app:layout_constraintStart_toEndOf="@+id/imageView"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.0" />

     <EditText
         android:id="@+id/editTextTextPersonName"
         android:layout_width="281dp"
         android:layout_height="54dp"
         android:layout_marginBottom="320dp"
         android:layout_marginEnd="153dp"
         android:layout_marginStart="58dp"
         android:layout_marginTop="88dp"
         android:autofillHints=""
         android:ems="10"
         android:background="@drawable/edittextround"
         android:hint="@string/LoginTextHint"
         android:inputType="textPersonName"
         android:textSize="24sp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/imageView"
         app:layout_constraintHorizontal_bias="0.0"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/imageView"
         app:layout_constraintVertical_bias="0.962" />

     <ImageView
         android:id="@+id/imageView"
         android:layout_width="566dp"
         android:layout_height="972dp"
         android:adjustViewBounds="false"
         android:contentDescription="@string/todo"
         android:cropToPadding="false"
         android:foreground="?android:attr/selectableItemBackgroundBorderless"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.503"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.344"
         app:srcCompat="@drawable/picture1_2" />

</androidx.constraintlayout.widget.ConstraintLayout>

edittextround.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle" android:padding="10dp">
     <solid android:color="#FFFFFF"/>
     <gradient
         android:centerY="0.2"
         android:startColor="#D3D3D3"
         android:centerColor="#65FFFFFF"
         android:endColor="#00FFFFFF"
         android:angle="270"
         />
     <stroke
         android:width="0.7dp"
         android:color="#BDBDBD" />
     <corners
         android:radius="15dp" />
</shape>

我尝试将 edittextbackground.xml 放在登录按钮上,效果很好。

与此activity相关的图片如下:

Image of the design

请帮我弄清楚为什么我的 editText 字段不显示它们的背景

好的知道了

所以问题如下

app:layout_constraintBottom_toTopOf="@+id/imageView" app:layout_constraintTop_toBottomOf="@+id/imageView"

您正在为 imageView 设置约束,并且 imageView 也在 Edittext 区域中呈现,但不在背景中呈现,因为它与 Edittexts 处于相同的高度,因此如果您只是增加 editexts 的高度,它们就会显示出来,我试过了,它有效 只需在两个编辑文本中添加 android:elevation="1dp" imageview 为 0dp,因此编辑文本将显示在其上方。

虽然它有效,但您的约束令人困惑,请改用 parent

app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/button" 也会做

另外我想说如果你正确使用约束布局你不需要设置 layout_widthlayout_height 在大多数情况下你可以将它们设置为 0 约束将决定正确的宽度和高度也不需要使用边距,如果你正确使用偏差、链、组、障碍、指南等,你的约束将处理它们,请了解更多关于约束布局的信息,你可以将上面布局文件中的行减少一半。

this 教程会给你一个好的开始,也可以观看该系列中的其他视频

祝你有个愉快的一天