我创建了我的RcyclerView
及其适配器,如下所示。
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
final ArrayList<String> list = new ArrayList<>();
final RecyclerViewAdapter adapter = new RecyclerViewAdapter(list);
recyclerView.setAdapter(adapter);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int count = list.size();
list.add(count + " * 10 = " + (count * 10));
adapter.notifyDataSetChanged();
}
});
我的adapter
的ViewHolder是
class ViewHolder extends RecyclerView.ViewHolder {
EditText item;
ViewHolder(View itemView) {
super(itemView);
item = (EditText) itemView.findViewById(R.id.item);
item.requestFocus(); //I want my last row's EditText get focused automatically.
}
}
所以我想让我的上一次EditText
自动聚焦。但是当我添加新的最后一个edittext聚焦时,再添加一个,然后第一个聚焦,然后是最后一个,然后是第一个...等...请参考gif。
这里不应该转到第一个edittext。
我不知道如何稳定这个问题。
答案 0 :(得分:3)
通过使用以下方法,我实现了目标。感谢所有试图帮助我的人。
@Override
public void onViewAttachedToWindow(ViewHolder holder) {
super.onViewAttachedToWindow(holder);
if (holder.item != null && holder.item.getText().length() == 0) {
holder.item.requestFocus();
}
}