2016-09-19 65 views
1

是否有可能以編程方式更改鍵盤的位置? 我正在開發一個圖騰應用程序,如果鍵盤出現在底部,它很難使用。Android浮動鍵盤

我試圖創建一個擴展InputMethodService的自定義鍵盤,我可以改變鍵的佈局,但我無法改變鍵盤的視圖位置。

SwiftKey允許取消鍵盤並垂直拖動,他們怎麼做?

回答

0

將一個KeyboardView放在RelativeLayoutFrameLayout內,並在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

更詳細的例子