gpt4 book ai didi

android - 询问建议 - 编辑文本上下移动时失去焦点时回收 View 的回调函数

转载 作者:行者123 更新时间:2023-11-29 23:03:23 25 4
gpt4 key购买 nike

我有 recycleView 的 Activity ,其中包括一些编辑文本。当选择任何编辑文本键盘获取弹出窗口时。但是,当我将回收 View 移动到向上键盘时,键盘会更改为默认键盘。

我找到了它的原因,当编辑文本消失时,它从回收 View 中删除,因此它失去了焦点。然后键盘更改为默认

现在,当移动 recycleview 时没有任何编辑文本的焦点时,我需要关闭键盘。但是当没有编辑文本的焦点时,我不知道如何获得这种回调。

最佳答案

我想向您推荐一种名为 onViewDetachedFromWindow 的 recyclerView 方法。例如,当您滚动 recyclerView 时,项目变得不可见,此时适配器调用:

override fun onViewDetachedFromWindow(holder: RecyclerView.ViewHolder) {
super.onViewAttachedToWindow(holder)
if (holder is MyViewHolder) {
holder.checkForFocus()
}
}

在 viewHolder 之后你可以检查焦点:

inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

fun bind(item: MyViewItem) {
itemView.editText.hint = item.title
}

fun checkForFocus() {
if(itemView.editText.hasFocus()){
callback.hideKeyBoard()
}
}
}
}

var callback: IKeyBoard? = null // initialize it in fragment/activity


interface IKeyBoard {
fun hideKeyBoard()
}

之后可以在fragment/activity中实现隐藏键盘的回调方法

希望对你有帮助

关于android - 询问建议 - 编辑文本上下移动时失去焦点时回收 View 的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56783789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com