【问题标题】:Custom EditText background white color remove自定义 EditText 背景白色去除
【发布时间】:2020-09-03 04:14:31
【问题描述】:

我想从 editText 搜索栏中删除背景白色。我希望搜索栏看起来漂浮在上方。请任何人帮助...这是的屏幕截图。

search_input_style.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="32dp" />
    <padding android:top="12dp" android:left="12dp"
        android:bottom="12dp" android:right="12dp" />
</shape>

EditText xml 代码

编辑(这是完整的 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/root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#d8ebb5"
    tools:context=".MainActivity">


    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/market_rv"
        android:layout_width="411dp"
        android:layout_height="645dp"
        android:layout_marginEnd="8dp"
        android:background="#d8ebb5"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/search_input"
        tools:listitem="@layout/customlist_item_market" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:src="@drawable/ic_add_black_24dp"
        app:backgroundTint="#0979D3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.915"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.845" />

    <EditText
        android:id="@+id/search_input"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:background="@drawable/search_input_style"
        android:backgroundTint="#D8EBB5"
        android:drawableLeft="@drawable/ic_search_gray_24dp"

        android:elevation="10dp"


        android:hint="search"
        android:inputType="textPersonName"
        android:textColor="@color/content_text_color"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>

实际上,这在模拟器上可以正常工作,但在实际手机上却无法正常工作。模拟器上还有另一个问题是搜索栏,并且列表重叠,这在实际手机上不会发生,您可以在手机屏幕截图上方看到此内容。 .

【问题讨论】:

    标签: android android-edittext searchbar android-shapedrawable


    【解决方案1】:

    如果我理解正确,您需要将 EditText 父级的背景颜色更改为#D8EBB5。

    您没有提供完整的 XML 代码,只是尝试将 android:background="#D8EBB5" 设置为第一个 EditText 的父背景。

    【讨论】:

      【解决方案2】:

      要提升你可以使用 . android:elevation="10dp" 并将EditText父视图的背景颜色设置为android:background="#D8EBB5" 如果它不起作用,请提供您的完整 xml 代码。

      【讨论】:

      • android:background="#D8EBB5" 颠覆了我的搜索栏设计。我已经编辑了帖子。
      【解决方案3】:

      只需将背景颜色应用于您的父视图。这只是一个例子:

      <LinearLayout
          android:background="@color/...."
          ...>
      
          <EditText
              android:id="@+id/edittext"
              android:drawableLeft="@drawable/ic_add_24px"
              android:drawableTint="@color/...."
              android:hint="Search"
              />
      
      </LinearLayout>
      

      然后使用材质组件库应用MaterialShapeDrawable

      float radius = getResources().getDimension(R.dimen.default_corner_radius);
      EditText editText = findViewById(R.id.edittext);
      ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
          .toBuilder()
          .setAllCorners(CornerFamily.ROUNDED,radius)
          .build();
      
      MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);
      shapeDrawable.setStroke(1.0f, ContextCompat.getColor(this,R.color....));
      shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,android.R.color.transparent));
      
      ViewCompat.setBackground(editText,shapeDrawable);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        相关资源
        最近更新 更多