2015-10-15 3 views
37

Ist es möglich, die Android Snackbar über der Tastatur zu zeigen (wie in Y-Koordinate, nicht schichtweise)? Die Snackbar wird derzeit ausgeblendet, wenn die Tastatur angezeigt wird, was ein unerwünschtes Verhalten ist.Android-Snackbar über der Tastatur anzeigen?

+1

Weil wir dies nicht heraus konnten wir verstecken nur die Tastatur, wenn wir jetzt eine snackbar angezeigt (die wir für Fehler verwenden) – fobbymaster

+0

Wenn Sie eine Tastatur haben, werden Sie in der Regel die beste Leistung erhalten mit einem einfachen alten Toast. Dies wird über die Tastatur angezeigt, und Sie müssen die Tastatur nicht verstecken (was den Benutzer verwirren könnte) – Entreco

Antwort

48

Set

android:windowSoftInputMode="adjustResize" 

im AndroidManifest.xml für die Tätigkeit Ihrer snackbar enthält

+6

Definitiv nicht funktioniert ... Android 4.1.2 –

+0

Wie stellen Sie das in eine Aktivität? – Menasheh

+2

Sie fügen dies in das Manifest Ihrer Aktivität ein. –

5

Wenn Sie Nest Ihr Layout in einem Scrollview, wird der snackbar oben auf der Tastatur angezeigt. Dies liegt daran, dass die Größe der Ansicht geändert wird, um nur den verfügbaren Platz über der Tastatur zu belegen. Und natürlich kann Ihre Ansicht auch jederzeit geblättert werden, wenn die Tastatur angezeigt wird oder nicht.

+0

Verwenden Sie dies mit Android: FillViewport = "True", um sicherzustellen, dass ScrollView füllen den gesamten Bildschirm sollte die akzeptierte Antwort – FallasB

-3

Genau wie @AbAppletic sagte, legen Sie die folgende Zeile in Ihre Anwendungen manifestieren:

android:windowSoftInputMode="adjustResize"

0

Dies ist mein Code für snackbar und seine ähnlich arbeiten + wie Sie brauchen, ist relativeLayout das übergeordnete Haupt Layout id i etwas bestanden haben.

 snackbar=snackbar.make(relativeLayout,"Image is Saved to "+Savedfile.getPath().toString(),Snackbar.LENGTH_INDEFINITE) 
       .setAction("OK", new OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         snackbar.dismiss(); 
         snackbar=null; 

         System.gc(); 
         finish(); 
        } 
       }); 
     snackbar.show(); 
7

Sie können Tastatur ausblenden, wenn Snackbar Show.

InputMethodManager imm = (InputMethodManager)activity.getSystemService(Activity.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

+0

für den Fall, dass Ihre Snackbar ist eine Antwort auf eine Eingabe zu einem TextEdit dies ist sehr unfreundlich für den Benutzer, wie es am Ende Klicken Sie auf etwas anderes und unangenehm zu sehen (flackern). Besser ist es mit Scrollviewer zu nisten – Ivan