个人技术分享

要实现用户点击别处时不让文本输入框高亮,你可以在根布局中添加一个可点击的 View,当用户点击这个 View 时,让焦点从文本输入框移除。这样用户点击别处时就不会再有文本输入框高亮了。

    <!-- 添加一个可点击的透明 View,用于移除焦点 -->
    <View
        android:id="@+id/clickableBackground"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:focusable="true"
        android:onClick="removeFocus"
        android:focusableInTouchMode="true"/>

下面是你的 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/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#90EE90"
    tools:context=".MainActivity">

    <!-- 添加一个可点击的透明 View,用于移除焦点 -->
    <View
        android:id="@+id/clickableBackground"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:focusable="true"
        android:onClick="removeFocus"
        android:focusableInTouchMode="true"/>

    <!-- 向左显示 蓝牙考勤打卡标题 -->
    <TextView
        android:id="@+id/textViewTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="蓝牙考勤打卡"
        android:textSize="24sp"
        android:textColor="#000000"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_marginTop="16dp"
        android:layout_marginBottom="16dp"
        app:layout_constraintHorizontal_bias="0.05"/>


    <!-- 居中显示字符串“打卡状态:已打卡” -->
    <TextView
        android:id="@+id/textViewCheckInStatus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打卡状态:未打卡"
        android:textSize="18sp"
        android:textColor="#000000"
        app:layout_constraintTop_toBottomOf="@id/textViewTitle"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        android:layout_marginTop="16dp"
        android:layout_marginBottom="16dp"/>

    <!-- 输入姓名 -->
    <EditText
        android:id="@+id/editTextName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="请输入姓名"
        android:padding="12dp"
        android:background="@android:drawable/edit_text"
        app:layout_constraintTop_toBottomOf="@id/textViewCheckInStatus"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginTop="16dp"/>

    <!-- 输入学号 -->
    <EditText
        android:id="@+id/editTextStudentID"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="请输入学号"
        android:padding="12dp"
        android:background="@android:drawable/edit_text"
        app:layout_constraintTop_toBottomOf="@id/editTextName"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginTop="16dp"/>

    <!-- 按钮容器 -->
    <LinearLayout
        android:id="@+id/buttonContainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintTop_toBottomOf="@id/editTextStudentID"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_marginTop="16dp">

        <!-- 保存按钮 -->
        <Button
            android:id="@+id/buttonSave"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="保存信息"
            android:layout_marginEnd="8dp"/>

        <!-- 手动打卡按钮 -->
        <Button
            android:id="@+id/buttonManualCheckIn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手动打卡"/>

    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

同时,在你的 Activity 或 Fragment 中,添加一个方法来处理点击事件:

public void removeFocus(View view) {
    editTextName.clearFocus();
    editTextStudentID.clearFocus();
    // 可以添加其他 EditText 的清除焦点操作,如果有的话
}

这样,当用户点击界面上任何地方时,文本输入框就会失去焦点,高亮也会消失。

在这里插入图片描述

问询、帮助

你如果需要帮助,请看这里:

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2