0

我想从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>

编辑文本 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>

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

4

3 回答 3

1

要提升你可以使用 . android:elevation="10dp" 并将 EditText 父视图的背景颜色设置为android:background="#D8EBB5" If it doesn't work 然后提供您的完整 xml 代码。

于 2020-05-17T12:07:10.083 回答
0

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

<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);

在此处输入图像描述

于 2020-05-17T12:23:54.473 回答
0

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

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

于 2020-05-17T12:02:18.903 回答