我有一个Fragment,它有一个RecyclerView。这个RecyclerView有一个头适配器,它包含一个EditText。
当Fragment进入视图时,我希望EditText自动聚焦(即自动显示键盘)。
我该怎么做?
碎片:
public class My Fragment extends Fragment {
private LinearLayoutManager layoutManager;
private FeedRecyclerView recyclerView;
private PostAdapter postAdapter;
private ConcatAdapter concatAdapter;
private HeaderAdapter headerAdapter;
private List<Post> postData = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
return inflater.inflate(R.layout.my_fragment, parent, false);
}
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
recyclerView = view.findViewById(R.id.recycler_view);
layoutManager = new FeedLinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
// This is the adapter that contains the EditText
headerAdapter = new HeaderAdapter(getContext());
postAdapter = new PostAdapter(getContext(), postData, layoutManager);
concatAdapter = new ConcatAdapter();
recyclerView.setAdapter(concatAdapter);
concatAdapter.addAdapter(searchHeaderAdapter);
}
}
适配器类HeaderAdapter:
public class HeaderAdapter extends RecyclerView.Adapter<HeaderAdapter.ViewHolder> {
private Context context;
public HeaderAdapter(Context context) {
this.context = context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.my_header, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//
}
@Override
public long getItemId(int position) {
return 1;
}
@Override
public int getItemCount() {
return 1;
}
public class ViewHolder extends RecyclerView.ViewHolder {
public EditText myEditText;
public ViewHolder(View v) {
super(v);
myEditText = v.findViewById(R.id.my_edit_text);
}
}
}
如您所见,我的RecyclerView的适配器HeaderAdapter具有EditText。当显示Fragment时,我希望自动聚焦此EditText。
我该怎么做?
谢谢你!
2条答案
按热度按时间nlejzf6q1#
将这一行myEditText.requestFocus()添加到页眉视图保持器的init中
gudnpqoy2#
试试这个