我正在为android的输入法工作,其中一项任务是为硬键盘按键实现自定义弹出式键盘。通常输入法让编辑器处理,但事情是我需要添加比android支持更多的符号。 因此,我实现了弹出式键盘,并且在长时间按下硬键(字符键)时甚至可以很好地显示它。弹出键盘问题在Android中,当指定列限制时
我遵循的步骤是:
- 创建弹出窗口。
- 充气含有keyboardview和关闭按钮的线性布局并将其保存到一个视图对象
- 绑定的keyboardview和关闭按钮的相关对象
- 创建键盘弹出字符,并将其设置为键盘视图的键盘。键盘具有5.
- 一列的限制中的线性布局作为弹出窗口
- 显示弹出窗口
问题的内容视图:如果在弹出键盘的多个行我我只能在列的最后一行中选择键。即使我点击该列第一行的键,最后一行中的键也会被选中。 如果有人能解释为什么会发生这种情况,我该如何解决它,Id感谢。
的代码:
PopupWindow mPopupKeyboard = new PopupWindow(this.getBaseContext());
mPopupKeyboard.setBackgroundDrawable(null);
if(mPopupKeyboard != null)
{
this.dismissPopupKeyboard();
View mMiniKeyboardContainer = null;
KeyboardView mMiniKeyboard = null;
View closeButton = null;
mMiniKeyboardContainer = getLayoutInflater().inflate(R.layout.keyboard_popup_keyboard, null);
mMiniKeyboard = (KeyboardView) mMiniKeyboardContainer.findViewById(R.id.popup_keyboardView);
closeButton = mMiniKeyboardContainer.findViewById(R.id.closeButton);
if (closeButton != null)
{
closeButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
mPopupKeyboard.dismiss();
});
}
mMiniKeyboard.setOnKeyboardActionListener(this);
String resourcestring = "abcdefghi";
mMiniKeyboard.setKeyboard(new Keyboard(this.getBaseContext(), R.xml.kbd_popup_template, alternates, 3, 0));
mMiniKeyboard.setPopupParent(mCandidateView);
mPopupKeyboard.setContentView(mMiniKeyboardContainer);
mPopupKeyboard.setWidth(LayoutParams.WRAP_CONTENT);
mPopupKeyboard.setHeight(LayoutParams.WRAP_CONTENT);
mPopupKeyboard.showAtLocation(mCandidateView, Gravity.TOP, 0, 0);
}