首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android文本键盘隐藏后,自定义键盘显示两次

android文本键盘隐藏后,自定义键盘显示两次
EN

Stack Overflow用户
提问于 2016-11-24 13:42:35
回答 1查看 215关注 0票数 0

在我的活动类中,我使用自定义键盘和android软文本键盘。Android文本软键盘调整活动布局。如果我打开自定义键盘,而软键盘打开,最后一个隐藏和布局扩大回来。但我一打完电话就会打开定制键盘

代码语言:javascript
运行
复制
InputMethodManager imm = (InputMethodManager)context.GetSystemService(Context.InputMethodService);
            imm.HideSoftInputFromWindow(view.WindowToken, 0);

这里的视图是带有自定义键盘的视图。当定制键盘绘制两次时,我面临的问题是:

  1. 当android软键盘被隐藏,但布局还没有扩展回来。在这种情况下,自定义键盘出现在屏幕的上半部分。
  2. 布局展开后返回。在这种情况下,自定义键盘出现在屏幕的下半部分。

我想要做的是避免两个键盘同时出现。在活动代码中,我只使用SoftInput.StateAlwaysHidden WindowSoftInputMode。SoftInput.AdjustPan并不方便,因为在这种情况下,一些视图可以被安卓键盘隐藏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-28 11:48:07

经过数小时的网络搜索,答案终于找到了。Pspdfkit有伟大的职位

通过小规模的调查,它在C#上被改写为Oncreate方法:

代码语言:javascript
运行
复制
    private View decorView;
    private int lastVisibleDecorViewHeight = 0;
    decorView = Window.DecorView;
    decorView.ViewTreeObserver.GlobalLayout += (sender, args) =>
        {
            Rect windowVisibleDisplayFrame = new Rect();
            decorView.GetWindowVisibleDisplayFrame(windowVisibleDisplayFrame);
            int visibleDecorViewHeight = windowVisibleDisplayFrame.Height();
            if (lastVisibleDecorViewHeight != 0)
            {
                if (lastVisibleDecorViewHeight > visibleDecorViewHeight)
                {
                    OnSoftKeyboardShown();
                }
                else if (lastVisibleDecorViewHeight < visibleDecorViewHeight)
                {
                    OnSoftKeyboardHidden();
                    if (!isAndroidSoftKeyboardShown && customKeyboardRequested)
                    {
                        Keyboard.RequestCustomKeyboard(requestedCustomKeyboardType);
                        customKeyboardRequested = false;
                    }
                }
            }
            lastVisibleDecorViewHeight = visibleDecorViewHeight;
        };

希望这能对有类似问题的人有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40787967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档