【问题标题】:Android floating keyboard安卓浮动键盘
【发布时间】:2016-09-19 10:07:15
【问题描述】:

是否可以通过编程方式更改键盘的位置? 我正在开发一个图腾的应用程序,如果键盘出现停靠在底部,则很难使用。

我尝试创建一个扩展 InputMethodService 的自定义键盘,并且我能够更改键的布局,但我无法更改键盘的视图位置。

SwiftKey 允许松开键盘并垂直拖动它,他们怎么做?

【问题讨论】:

    标签: android keyboard floating


    【解决方案1】:

    在 InputMethodService 中,您引用了 Window。添加您的拖动逻辑以更新LayoutParamswindow。确保正确实施onComputeInset。请注意,即使您尝试为window 使用新的LayoutParams,窗口的重力始终水平居中,垂直居中。

    查看我的示例https://github.com/dbof10/float-keyboard

    【讨论】:

    • 请你更新你的回购,看起来很有希望,但它不能正常工作
    • 你的意思是不能正常工作,你能在repo中创建一个问题吗?
    【解决方案2】:

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

    更详细的浮动键盘视图示例here

    【讨论】:

    • 这没有帮助
    猜你喜欢
    • 2015-07-27
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多