2014-02-20 15 views
17

Ich habe eine einfache Login-Ansicht wie unten gezeigt.Android Soft-Tastatur versteckt Taste

Wenn sich EditText auf den Fokus konzentriert, wird die Tastatur angezeigt (weich). Die rote gestrichelte Linie sollte dieses Verhalten skizzieren:

Keyboard

Was ich brauche, ist, dass die Buttons am unteren Rand (Anmelden & Hilfe) sind unsichtbar während Tastatur angezeigt wird. Das untere Ende der Login-Schaltfläche sollte über der Tastatur liegen, so dass sowohl EditTextsals auch die Login Button sichtbar sind. wenn das möglich ist

Allenfalls die Hälfte des Logos sollte sichtbar sein, wenn möglich (auf Bildschirmgröße abhängig)

Es wäre völlig in Ordnung sein, ein zusätzliches Layout XML zu definieren, wie „Tastatur sichtbar ist“.

+0

haben überprüfen Sie adjustPan oder adjustResize in manifest – user2450263

+1

Ja, ich habe, aber dann die Login-Taste wird Cutoff ein wenig – Alexander

+1

Antwort

3

Tun Sie etwas wie dis. Hier ist "android: name" Ihre Aktivität.

<activity 
      android:name="com.example.tryitonjewelry.EnterStoreRegisterNew" 
      android:label="@string/title_activity_enter_store_register_new" 
      android:screenOrientation="portrait" 
      android:windowSoftInputMode="adjustPan"> 
      <intent-filter> 
       <action android:name="android.intent.action.ENTERSTOREREGISTERNEW" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
+0

AdjustPan sowie AdjustResize wird nicht funktionieren, weil die Login-Schaltfläche bekommt ein wenig abgeschnitten – Alexander

+0

try adjustResize | adjustPan –

+0

funktioniert auch nicht – Alexander

1

Sie können es in wenigen Schritten verwalten. Wenn KeyBoard Popup dann führen Sie die folgenden Schritte aus, oder Sie können diese in eine Methode umhüllen ...

  • Holen Sie sich die Fensterhöhe.
  • Bestimmen Sie die Tastaturhöhe.
  • Scrollen Sie mit der Methode scrollTo() über die Tastaturhöhe.
  • +2

    "Wenn das KeyBoard Popup" ist ein wenig zu wenig Informationen. Gibt es einen Tastaturhörer oder eine Systembenachrichtigung wie in iOS? Weiter habe ich gelesen, dass es keine Methode gibt, um die Höhe der Tastatur zu bestimmen – Alexander

    2

    1) ScrollView als übergeordnetes Layout, damit es vom Benutzer gescrollt werden kann.

    2) nur adjustResize

    3) Verwenden software keyboard show/hide event Verwendung von mehr Kontrolle zu haben. Sie können die Sichtbarkeit des Layouts unterhalb der Login-Schaltfläche mit View.GONE festlegen, während die Tastatur geöffnet ist.

    Extra:

    prüfen Specifying the Input Method Type. Als nächstes und Erledigt Aktionen zur Erleichterung der Benutzer

    +2

    Ich bekomme nicht den Sinn eines benutzerdefinierten Tastaturlayouts. Warum brauche ich das? Ich möchte nur einige Ansichten unsichtbar machen, wenn die Tastatur angezeigt wird und den Inhalt der scrollviews etwas verschieben. Gibt es keinen anderen Weg? Ich kann nicht glauben, dass es so schwer ist.In iOS ist es wie 5 Zeilen Code, um dieses Verhalten zu erreichen ... – Alexander

    +0

    @Alexander so zuerst adjustResize atribute hinzufügen. Dann erscheint die interne Code-Tastatur mit OnTouch (alle editText-Listen werden auf dieselbe OnTouch-Funktion gesetzt) ​​und innerhalb von OnTouch legen Sie die Sichtbarkeit einiger Ansichten fest, die Sie nicht anzeigen möchten. Drücken Sie auf die Zurück-Taste (von der wir annehmen, dass die Tastatur ausgeblendet wird) und setzen Sie die Sichtbarkeit auf sichtbar, um die Ansichten erneut anzuzeigen. (Hinweis: Testen Sie selbst, ob das Verschwinden der Tastatur korrekt gehandhabt wird.) – qwr

    +0

    @Alexander check .Ich denke, dass Sie diese Lösungen verwenden können – qwr

    Verwandte Themen