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);
}
}
}
}