2016-07-28 14 views
3

Ich erstelle ein Objekt aus der Androiden-Tastatur-Klasse (https://developer.android.com/reference/android/inputmethodservice/Keyboard.html). In meinem Fall brauche ich nur die Standardtastatur, keine benutzerdefinierte Tastatur. Die Konstruktoren der Keyboard-Klasse benötigen jedoch eine XML-Ressourcendatei, die eine Definition von Zeilen und Schlüsseln enthält. Es scheint, dass es nur zum Erstellen einer benutzerdefinierten Tastatur ist.Erstellen Sie KeyboardView über die Standardtastatur ohne Schlüsseldefinition in XML-Ressource-Datei

Ich brauche diese Aufgabe der Keyboard-Klasse in einem KeyboardView innerhalb eines TabLayout zu verwenden:

keyboard123 = (KeyboardView) Tab2View.findViewById(R.id.keyboard123); 
Keyboard k1 = new Keyboard(Tab2View.getContext(), R.xml.qwerty_keyboard); 
k1 = new Keyboard(Tab2View.getContext(), com.android.internal.R.id.keyboardView); 
keyboard123.setKeyboard(k1); 

Der obige Code funktioniert gut, aber nur, wenn ich eine XML-Datei „qwerty_keyboard“ mit Schlüsseldefinition erstellen. Gibt es eine Möglichkeit, die Android-Standardtastatur zu bekommen und sie auf einer der Registerkarten im TabLyout anzuzeigen?

enter image description here

+0

Möchten Sie die Tastatur anzeigen? –

+0

Ja :) Es sollte innerhalb der TabLayout sichtbar sein. Dies funktioniert bisher für die Custom-Tastatur, aber ich möchte keine eigene Tastatur implementieren, da die Standard-Tastatur großartig wäre :) –

Antwort

3

Sie können es die Art und Weise nicht tun Sie es zu tun versuchen. Sie können die Standardtastatur in einer Ansicht nicht erstellen, da es sich um eine separate App handelt, die eigenständig ausgeführt wird.

Um das zu erreichen, was Sie versuchen, müssen Sie den Eingabe-Manager auffordern, aufzufliegen, wenn Sie zur Tastatur-Registerkarte gehen, aber ehrlich gesagt haben Sie so viele Probleme mit der Größe (Höhe), die ich gewonnen habe. Ich empfehle diese Art von Design :) Denken Sie nur daran, jeder kann eine Tastatur machen und jeder kann eine installieren, es gibt viele, viele viele Tastaturen und sie alle haben unterschiedliche Höhen, aber Sie könnten in der Lage sein, diese Höhe zu bekommen und etwas Magie zu tun ...

Eine andere Alternative wäre einfach, Ihre eigene eingebettete Tastatur zu erstellen (ein bisschen wie das, was Sie bereits getan haben).