When I touched the EditText inside ListView or RecyclerView the soft keyboard showing. Then i clicked the next button on keyboard and the focus changed to next EditText. After last visible EditText, the focus changing to next EditText but ListView or RecyclerView not scrolling inside and all the screen going under the status bar every keyboard next Button clicked.
The following xml which is using for this screen:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/MainToolbar"
layout="@layout/toolbar" />
<include
android:id="@+id/llHeaderItem"
layout="@layout/TaskShelfShareHeaderItem" />
<ListView
android:id="@+id/lwShelfShare"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stackFromBottom="true"
android:transcriptMode="normal" />
</LinearLayout>
I figured it out this way. Hope it helps.
mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
RecyclerView recyclerView = getRecyclerView();
if (recyclerView != null) {
int position = getLayoutPosition();
RecyclerView.ViewHolder viewHolder = recyclerView.findViewHolderForLayoutPosition(position + 1);
if (viewHolder == null) {
recyclerView.smoothScrollToPosition(position + 1);
return true;
}
}
return false;
}
});
@Ivan Vazhnov
you need to pass the reference of the recyclerView to the adapter, something like
CustomAdapter(data:Object, recyclerView: RecyclerView)
and then inside the adapter onBindViewHolder{}
try {
val _recyclerView = recyclerView
val _VH = _recyclerView.findViewHolderForLayoutPosition(position +
if(_VH != null){
text =_VH.itemView.findViewById<EditText>(R.id.Cantidad)
text.requestFocus()
}
} catch (e: Exception) {
Log.e("RecyclerView", e.localizedMessage)
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.