[英]RecylerView Data Update Always Brings Focus to First Item
在使用包含EditText
的新ArrayList
更新RecylerView
时,我遇到了一个问题。 每当RecylerView
用新的ArrayList
更新时,程序总是选择RecyclerView
第一项的EditText
。
每次发生焦点变化时,都会有Listeners
调用下面的更新函数。 因此,换句话说,您无法有效地选择RecylerView
中的任何其他EditText
项目,因为当第一个项目失去焦点时, RecyclerView
使用新的ArrayList
更新,然后自动选择RecyclerView
第一个项目的EditText
。
notifyDataSetChanged()
只是自动选择第一项的默认设置? 或者也许是因为我设置了适配器的某种方式?
private void refreshRecyclerList() {
// Set titles for the Recycler View Items
textInputList.clear();
textInputList.add(new EditTextRecyclerItem("Monthly on New Stuff", stringSpendingMonthly));
textInputList.add(new EditTextRecyclerItem("Yearly on New Stuff", stringSpendingAnnually));
//mAdapter.updateArrayList(textInputList);
mAdapter.notifyDataSetChanged();
}
我是 Android 新手,所以如果这是我忽略的简单修复,请原谅。
如果你调用这个mAdapter.notifyDataSetChanged()
那么这意味着整个 recyclerview 正在刷新,所以如果你想专注于更改的项目myAdapter.notifyItemInserted(position)
或myAdapter.notifyItemChanged()
或者你可以通过recyclerview.scrollToPosition()
滚动你的 RecyclerView
如果它不起作用,请尝试回复我。
尝试将这些行放在Itemview的父布局中
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.