6

Quando ho toccato EditText all'interno di ListView o RecyclerView mostra la tastiera virtuale. Quindi ho fatto clic sul pulsante successivo sulla tastiera e lo stato attivo è stato modificato in EditText successivo. Dopo l'ultimo EditText visibile, lo stato attivo passa a EditText successivo, ma ListView o RecyclerView non scorre all'interno e tutto lo schermo passa sotto la barra di stato ogni tastiera successiva al pulsante.Quando si concentra EditText in ListView o RecyclerView, la tastiera mostra ma scorre non funziona

il seguente codice XML che sta usando per questa schermata:

<?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> 

Screen cast

risposta

5

ho capito in questo modo. Spero che sia d'aiuto.

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

'getRecyclerView();' non trovato –

+0

@PratikButani Bisogna implementare 'getRecyclerView()'. Sta solo indicando che hai bisogno di un riferimento alla tua vista di riciclatore – Antonio

+0

Come 'getRecyclerView();' nella classe Adapter? @Ivan –

Problemi correlati