Eu tenho seguido os exemplos no developer.android.com relação a métodos de entrada e jogou com o aplicativo de exemplo SoftKeyboard. Estes juntos dão informações mais do que suficientes sobre a criação de um teclado simples.
Eu fiz teclado popup usando "android: popupKeyboard".
<Row android:keyHeight="@dimen/key_height"
android:id="@+id/label"
>
<Key android:codes="97" android:keyLabel="a" android:horizontalGap="@dimen/horizontal_border_gap"
android:keyEdgeFlags="left" android:keyBackground="@drawable/key_btn_l" android:popupKeyboard="@xml/popup"/>
<Key android:codes="115" android:keyLabel="s" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="100" android:keyLabel="d" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="102" android:keyLabel="f" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="103" android:keyLabel="g" android:keyBackground="@drawable/key_btn_l" android:popupKeyboard="@xml/popup"/>
<Key android:codes="104" android:keyLabel="h" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="106" android:keyLabel="j" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="107" android:keyLabel="k" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="108" android:keyLabel="l" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="45" android:keyLabel="-" android:keyEdgeFlags="right" android:keyBackground="@drawable/key_btn_a"/>
</Row>
Eu tenho uma pergunta sobre pop-up.
Desejo mostrar centro pop-up do teclado. mas o pop-up é mostrado perto da tecla pressionada. Existe alguma idéia para mostrar pop-up no centro do teclado?
quando pressione e segure a tecla, o popup é mostrado. Eu desejo mostrar popup quando pressionar rapidamente. existe alguma ideia?
Se alguém souber de solução, por favor me ajude.
Respostas:
0 para resposta № 1O pop-up padrão é pouco personalizável, mas vocêpode criar seu próprio popup para o seu teclado e personalizar tudo o que você deseja. Eu acho que você pode fazer isso com o Dialog e o PopupWindow, mas o PopupWindow é o melhor neste caso.
Crie seu próprio keyboardView, então você pode usar um método como onLongPress, ou onTouchEvent, se usar onTouchEvent você pode contar o tempo que a tecla é pressionada e então mostrar sua janela popup.
Para criar popupWindow:
View view = LayoutInflater.from(context)
.inflate(R.layout.popup_layout, new FrameLayout(context));
popup = new PopupWindow(context);
popup.setContentView(view);
popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
popup.showAtLocation(this, Gravity.CENTER, x, y);
Crie variáveis para x e y e obtenha com base na posição de toque.