引言
很多时候我们并不想要在含有EditText输入框的页面启动后,直接呼出手机的软键盘,而是点击输入框的时候再获取焦点呼出软键盘。具体如何实现呢?简单两步直接搞定!
实现方法:
在包含EditText控件的父布局中设置如下两行代码:
android:focusable="true"
android:focusableInTouchMode="true"
Tips:(解释一下)
这两行代码表示将EditText的默认自动获取焦点的功能,主动移交给其父布局控件进行控制,并且通过触摸(focusableInTouchMode)获取焦点。
具体代码:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/ivBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:src="@mipmap/ic_black_arrow"
app:layout_constraintBottom_toBottomOf="@id/search"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/search" />
<EditText
android:id="@+id/search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:background="@mipmap/doctor_search"
android:hint="输入商品名称、订单号"
android:imeOptions="actionSearch"
android:paddingStart="43dp"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:text=""
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ivBack"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ivSearch"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/ic_icon_search"
app:layout_constraintBottom_toBottomOf="@id/search"
app:layout_constraintStart_toStartOf="@id/search"
app:layout_constraintTop_toTopOf="@id/search" />
</androidx.constraintlayout.widget.ConstraintLayout>
网友评论