繁体   English   中英

RecylerView 数据更新总是将焦点放在第一项上

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM