2016-09-19 3 views
1

Ist es möglich, die Position der Tastatur programmgesteuert zu ändern? Ich entwickle eine App für ein Totem, und wenn die Tastatur auf der Unterseite angedockt erscheint, ist es sehr schwierig zu verwenden.Android Floating-Tastatur

Ich habe versucht, eine benutzerdefinierte Tastatur zu erstellen, die den InputMethodService erweitert, und ich kann das Layout der Tasten ändern, aber ich kann die Ansichtsposition der Tastatur nicht ändern.

SwiftKey können Sie die Tastatur abdocken und vertikal ziehen, wie können sie das tun?

Antwort

0

Setzen Sie eine Tastaturansicht in eine RelativeLayout oder FrameLayout und auf eine OnTouchListener ändern Sie ihre Ränder. Zum Beispiel

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; } 

detaillierteres Beispiel eines Floating KeyboardView here

Verwandte Themen