在 recyclerview 中提交列表后强制编辑文本以移除焦点
Posted
技术标签:
【中文标题】在 recyclerview 中提交列表后强制编辑文本以移除焦点【英文标题】:Force Edit text to remove focus after submitting list in recyclerview 【发布时间】:2021-10-08 18:08:09 【问题描述】:我有一个包含多个编辑文本的回收站视图。在向 recyclerview 添加项目时,焦点始终转移到屏幕的第一个 editText。 我已经将 android:focusable="true" 和 android:focusableInTouchMode="true" 与编辑文本的父布局一起使用。 下面是我的片段 XML 代码:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layoutPickupLocation"
android:layout_
android:layout_
android:focusable="true"
android:focusableInTouchMode="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_origin"
android:layout_
android:layout_
android:layout_marginStart="8dp"
android:src="@drawable/ic_origin_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/et_origin"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/et_origin"
style="@style/textGreyLight"
android:layout_
android:layout_
android:layout_marginStart="6dp"
android:layout_marginEnd="@dimen/sixteen_dp"
android:background="@null"
android:imeOptions="actionDone"
tools:hint="Enter Pickup Location"
android:singleLine="true"
android:ellipsize="end"
android:textColor="@color/warm_grey"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_origin"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_places"
android:layout_
android:layout_
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layoutPickupLocation" />
</androidx.constraintlayout.widget.ConstraintLayout>
这就是我将项目提交到我的 RecyclerView 列表的方式:
private fun submitSearchResult(it: List<MultipleLocation>?)
mLocationSearchAdapter.submitList(it?.map
DataItemLocationSearchListing.DefaultItemListing(
it
)
)
rvSearchLocation.post(Runnable mLocationSearchAdapter.notifyDataSetChanged() )
我们将不胜感激任何形式的帮助。
【问题讨论】:
【参考方案1】:请将您的notifyDataSetChanged()
替换为notifyItemChanged(positionOfYourList)
。
【讨论】:
以上是关于在 recyclerview 中提交列表后强制编辑文本以移除焦点的主要内容,如果未能解决你的问题,请参考以下文章