5

Tôi có một số RecyclerView chứa nhiều mục EditText làm mục danh sách, số EditText mở rộng mỗi khi một dòng được thêm vào. RecyclerView có tiêu chuẩn theo chiều dọc LinearLayoutManager và bộ điều hợp tiêu chuẩn RecyclerView.Adapter<RecyclerView.ViewHolder> với 15 mục trong danh sách EditText. Tôi sẽ thêm mã vào cuối câu hỏi.Multiline EditText trong RecyclerView Các sự cố cuộn

Vấn đề là sau khi bạn đã thêm một số dòng vào EditText, nó bắt đầu cuộn danh sách xuống mỗi khi một dòng được thêm vào. Cuối cùng, sau khi bạn đã thêm đủ dòng mới, EditText sẽ được cuộn ra khỏi đầu màn hình và mất tiêu điểm. Nếu bạn cố gắng cuộn lên và chọn dòng cuối cùng của EditText, nó sẽ cuộn danh sách xuống cho đến khi số EditText bị tắt ở đầu màn hình và nó mất tiêu điểm.

Đây không phải là sự cố cho ListView, chỉ dành cho RecyclerView.

Có ai biết cách khắc phục hoặc giải quyết vấn đề này không?

Các mục hàng:

<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textMultiLine|textCapSentences" 
     android:gravity="top" 
     android:hint="Enter text" 
     android:minLines="2" 
     android:layout_margin="16dp"/> 

Các RecyclerViewFragment và Adaptor

public class RecyclerViewFragment extends Fragment 
{ 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View view = inflater.inflate(R.layout.recycler_view_fragment, container, false); 

     RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); 
     recyclerView.setAdapter(new MyAdapter()); 
     recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 

     return view; 
    } 

    private class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> 
    { 
     @Override 
     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) 
     { 
      View view = getActivity().getLayoutInflater().inflate(R.layout.edit_text_list_item, parent, false); 

      MyViewHolder holder = new MyViewHolder(view); 
      return holder; 
     } 

     @Override 
     public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) 
     { 

     } 

     @Override 
     public int getItemCount() 
     { 
      return 15; 
     } 

     private class MyViewHolder extends RecyclerView.ViewHolder 
     { 

      public MyViewHolder(View itemView) 
      { 
       super(itemView); 
      } 
     } 
    } 
} 

Trả lời

3

Vấn đề này đã được cố định bằng phiên bản mới nhất của RecyclerView: 22.2.0

Các vấn đề liên quan