13

In meiner Anwendung habe ich eine ListView mit einer Fußzeile, die eine benutzerdefinierte Ansicht mit einem EditText innerhalb enthält. An der Spitze sitzt eine Aktionsleiste. Die Aktivität verwendet derzeit SOFT_INPUT_ADJUST_RESIZE (adjustResize) als Soft-Eingabemodus und schließt die Tastatur beim Scrollen nicht.Ist es möglich, die Aktionsleiste immer anzuzeigen, wenn Sie adjustPan als Soft-Eingabemodus verwenden?

Um mehr von der Liste anzuzeigen Ich wollte die Tastatur beim Scrollen entfernen und um ein weicheres Scroll-Verhalten zu erhalten, möchte ich ändern, so dass SOFT_INPUT_ADJUST_PAN() verwendet wird. Wenn ich jedoch zu adjustPan ändere, wird die gesamte Ansicht einschließlich der Aktionsleiste nach oben verschoben. Ich möchte, dass die Listenansicht gedrückt wird, aber die Aktionsleiste bleibt immer oben. Ist das möglich? Wenn nicht, ist es möglich, adjustResize zu verwenden und eine glatte Größenanimationsanimation zu erhalten?

Bisher habe ich versucht:

  • Window.FEATURE_ACTION_BAR_OVERLAY Beantragung, aber das hat nicht geholfen, obwohl die Dokumentation vielversprechend klang.
  • Um den Aktionsleistencontainer herum zu bewegen, abhängig davon, ob die Soft-Tastatur sichtbar ist oder nicht, was letztendlich wie ein massiv instabiler Hack aussah, so dass ich ihn verschrottete.
  • Bisher habe ich adjustResize ausgeschlossen, aufgrund der Zeichnung Verhalten beim Scrollen minimiert die Tastatur und Größe der Listview zur gleichen Zeit. Gibt es eine Möglichkeit, eine sanfte animierte Größenanpassung vorzunehmen?
+0

hast du es geschafft? Ich habe ähnliche Ausgabe – Jacky

+0

Leider nicht. – fejd

+0

@fejd Ich stehe vor dem gleichen Problem. Können Sie bitte aktualisieren, welchen Ansatz Sie zur Lösung dieses Problems verfolgt haben? – Ammar

Antwort

0

für adjustPan

unten Code setzen in Ihrer Tätigkeit Deklarationszeile in manifest.xml Datei

android:windowSoftInputMode="adjustPan" 

wie

<activity 
     android:name="activity" 
     android:windowSoftInputMode="adjustPan" > 
</activity> 

für entfernen keybord während scrall

, während Sie unter Code erhalten Ergebnis

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

durch diese Art und Weise zu diesem Zeitpunkt führen Sie keybord von Bildschirm zu entfernen.

+0

Danke, es funktioniert für mich. –

+1

Ich denke, diese Antwort löst das Problem in der Frage hier nicht – Tony

Verwandte Themen