2012-04-03 28 views
8

Yapmak istediğim şey, yalnızca bir klavyeyi kullanırken şu anda hangi tuşa bastığınızı gösteren pop-up'ları gizlemektir. Mümkün mü? Onlara ihtiyaç duymayacak kendi yeni klavyemi oluşturuyorum. Sanırım anlıyorum kadarıylaAndroid klavyeyi gizle tuş önizleme

aşağıdaki resim size Keyboard.Key XML android:popupKeyboard ve android:popupCharacters kullanarak göstermeyi tercih edebilir fiili açılan klavyedir.

Popup Android Keyboards

Ama görüntü aşağıda değil aynı (aynı zamanda this picture bakınız). Aşağıdakileri XML, hatta programlı olarak kullanarak kapatmak için bir yol var mı?

Android Keyboard Popups

cevap

14

a little bit of the actual android keyboard source code okuduktan sonra: "depresif anahtarın büyütülmüş versiyonunu gösteren bir pop-up"

Ne olduğunu "Önemli önizleme" oldu atıfta bulundu Varsayılan olarak önizleme etkinleştirilmiştir, ancak devre dışı bırakmak için, yeterlidir, setPreviewEnabled(boolean previewEnabled). Hangisi KeyboardView sınıfından bir yöntemdir. API.

+0

@Whymarrh hi uzanan özel bir sınıf içinden önizleme devre dışı bırakmak için nereye i Yukarıdaki 1 nolu klavyenizde gösterildiği gibi bir tuşa birden çok karakter görüntülemek istediğim problemle karşılaşıyorum. Etiket kullanarak anahtar üzerindeki çoklu/çok satırlı karakterleri görüntülemeye çalıştım. Bu bağlantıyı "http : //puu.sh/4Xmz1.png". Bu yüzden anahtar üzerinde birden fazla karakterin nasıl görüntüleneceğini öğrenebilirsiniz ... – Aniket

+0

@Aniket Kaynak kodumu GitHub'da çevrimiçi olarak görebilirsiniz: http://git.io/mM7pPQ. Http://git.io/SXo3GA: Bu dosyaya göre, anahtarda ihtiyacınız olan şeyi görüntülemek için Unicode karakterlerini kullanmayı deneyebilirsiniz. – Whymarrh

+0

Benim için çalıştı. Ben sadece "KeyboardView" sınıfından "setPreviewEnabled (boolean)" yöntemini kullanmak zorunda kaldım. –

5
public void onPress(int primaryCode) { 
    mInputView.setPreviewEnabled(false); 
} 

public void onRelease(int primaryCode) { 
    mInputView.setPreviewEnabled(true); //Change to false if you want remove too for the Del key when it's pressed 
} 

Ayrıca, görünüm elde ve evrensel, ben de SoftKeyboard üzerinde çalışıyorum kendi başınıza geliştirdik eğer InputMethodService

private KeyboardView mInputView; 
    @Override 
    public KeyboardView onCreateInputView() { 
     mInputView = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); 
     mInputView .setPreviewEnabled(false); 
     return mInputView; 
    } 
İlgili konular