2012-12-20 116 views
4

我目前正在学习android中的软键盘实现。我感到困惑的一件事是当你按任意键的时候在哪里实现弹出的小方块(我在下面附上两个例子)。Android软键盘的弹出式布局?

我已经阅读了SDK中提供的示例应用程序“软键盘”,它具有此功能,但我无法找到哪一段代码实现它。

任何想法如何实现/修改它?

Sample app "Soft keyboard"

sample keyboard

Android的默认键盘

android default keyboard

+0

我刚刚发现一个SO帖子,应该是我需要[这里](http://stackoverflow.com/questions/7752580/creating-a-softkeyboard-with-multiple-alternate-characters-per-key)和[这里](http://stackoverflow.com/questions/7770099/how-do-you-disable-the-softkeyboard-key-preview-window)。有人可以关闭我的问题吗?谢谢! – Yulong

+0

关闭一个问题。只需勾选一个答案。并写一个自己的未来游客,如果你觉得你需要 – cjds

+0

相关:[隐藏安卓键盘键预览](http://stackoverflow.com/q/9996968/1267663) – Whymarrh

回答

0

控制此驻留在LatinKeyboardView类中的部分

@Override 
protected boolean onLongPress(Key key) { 
    if (key.codes[0] == Keyboard.KEYCODE_CANCEL) { 
     getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS, null); 
     return true; 
    } else { 
     return super.onLongPress(key); 
    } 
} 

你看的部分在else

现在这调用super.onLongPress(key)其居住在KeyboardView

定制用相应代码覆盖else。

你会找到你参考here

+0

是啊我试图添加我的条件。但是,那里没有代码默认布局的权利?就像,我怎么能修改弹出窗口,比如它的大小,或者它显示的内容? – Yulong

+0

嗨,我刚刚发现了一些关于我的问题的相关文章,例如我在评论中添加上面的内容。但是,谢谢你的帮助;赞赏它。 – Yulong

1

这是您的预览布局。

为preview.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="#ffffff" 
android:gravity="center" 
android:textColor="@color/black" 
android:textSize="30sp" 
android:textStyle="bold" > 

</TextView> 

的代码示例,请致电您keyboardView的XML预览:

android:keyPreviewLayout="@layout/preview" 

或者,您可以创建扩展KeyboardView类和实现自己的代码预习。