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?