是否可以通过编程方式更改键盘的位置? 我正在为图腾开发一个应用程序,如果键盘出现在底部,则很难使用。
我尝试创建一个扩展InputMethodService的自定义键盘,我可以更改键的布局,但我无法更改键盘的视图位置。
SwiftKey 允许移除键盘并垂直拖动它,他们怎么能这样做?
答案 0 :(得分:1)
在InputMethodService内,您引用了Window
。添加您的拖动逻辑以将LayoutParams
的{{1}}更新。确保正确实施window
。请注意,即使您尝试为onComputeInset
使用新的LayoutParams
,窗口的重力也始终是水平居中且垂直于底部。
答案 1 :(得分:0)
将KeyboardView放在RelativeLayout
或FrameLayout
内,OnTouchListener
更改其边距。例如
public boolean onTouch(View view, MotionEvent event) {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
boolean performClick = false;
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
moveToY = (int) (event.getRawY() - dy);
moveToX = (int) (event.getRawX() - dx);
params.topMargin = moveToY;
params.leftMargin = moveToX;
view.setLayoutParams(params);
performClick = false;
break;
case MotionEvent.ACTION_UP:
performClick = true;
break;
case MotionEvent.ACTION_DOWN:
dy = event.getRawY();
dx = event.getRawX();
performClick = true;
break;
}
return !performClick; }
浮动KeyboardView here
的更详细示例