要实现用户点击别处时不让文本输入框高亮,你可以在根布局中添加一个可点击的 View,当用户点击这个 View 时,让焦点从文本输入框移除。这样用户点击别处时就不会再有文本输入框高亮了。
cpp <!-- 添加一个可点击的透明 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<?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 中,添加一个方法来处理点击事件:
javapublic void removeFocus(View view) {
editTextName.clearFocus();
editTextStudentID.clearFocus();
// 可以添加其他 EditText 的清除焦点操作,如果有的话
}
这样,当用户点击界面上任何地方时,文本输入框就会失去焦点,高亮也会消失。
你如果需要帮助,请看这里:
csharphttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!