J'utilise Tablayout pour afficher différentes méthodes d'entrée. La première onglegle contient des boutons et la quatrième onglet doit afficher le clavier standard incorporé dans cette nausée. Ici une capture d'écran Comment il faut ressembler à:
Le tuaquin fonctionne jusqu'à présent. J'ai essayé de créer un fichier XML de mise en page avec un clavierView. Mais l'application ne montre pas de clavier: p> Si j'utilise un simple TextView, l'application affiche le texte ... de sorte que la nausée elle-même fonctionne: <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="This is a tab layout"
android:id="@+id/textView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
3 Réponses :
J'ai écrit un IME il y a environ deux ans. Votre cas est différent de la mienne, mais l'idée devrait être la même.
Le problème est que vous n'avez pas spécifié de la disposition de clavier forte> pour la vue du clavier. P>
Voir le code : P>
@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Round up a little if (mKeyboard == null) { setMeasuredDimension(mPaddingLeft + mPaddingRight, mPaddingTop + mPaddingBottom); } else { int width = mKeyboard.getMinWidth() + mPaddingLeft + mPaddingRight; if (MeasureSpec.getSize(widthMeasureSpec) < width + 10) { width = MeasureSpec.getSize(widthMeasureSpec); } setMeasuredDimension(width, mKeyboard.getHeight() + mPaddingTop + mPaddingBottom); } }
Je n'ai pas écrit d'autres informations, je pense donc que je pense que je pense que vous écrivez des étapes complètes pour travailler avec le clavier, basé sur DOC ou, Cet exemple :
1 Modifier le manifeste en ajoutant des propriétés (à l'activité ou au service) p>
public class SimpleIME extends InputMethodService implements OnKeyboardActionListener{ private KeyboardView kv; private Keyboard keyboard; private boolean caps = false; @Override public void onKey(int primaryCode, int[] keyCodes) { } @Override public void onPress(int primaryCode) { } @Override public void onRelease(int primaryCode) { } @Override public void onText(CharSequence text) { } @Override public void swipeDown() { } @Override public void swipeLeft() { } @Override public void swipeRight() { } @Override public void swipeUp() { } }
Dans mon fragment, j'ai besoin de certaines lignes de code, par exemple, je devais ajouter une mise en page XML:
public class SQLConsoleTab2Fragment extends SQLConsoleFragment implements KeyboardView.OnKeyboardActionListener { public KeyboardView keyboard123; public View Tab2View; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //execute(v) Tab2View = inflater.inflate(R.layout.tab2, container, false); keyboard123 = (KeyboardView) Tab2View.findViewById(R.id.keyboard123); Keyboard k1 = new Keyboard(Tab2View.getContext(), R.xml.qwerty_keyboard); Tab2View.findViewById(R.id.keyboard123); keyboard123.setKeyboard(k1); keyboard123.setEnabled(true); keyboard123.setPreviewEnabled(true); keyboard123.setOnKeyboardActionListener(this); return Tab2View; } }
Je ne suis pas sûr, mais avez-vous essayé de spécifier une certaine hauteur à votre clavierview? Comme environ 250dp ou quelque chose comme ça?