android - 修复键盘打开时父 Activity 中的按钮位置

标签 android android-fragments android-activity android-tabs

我们在 Activity 中使用 Fragment。Activity 包含提交按钮,Fragment 包含表单输入。

现在,当我们打开键盘时, Activity 按钮会自动出现在键盘上方。我们如何粘住该按钮并仅向上移动 fragment 部分。

enter image description here

enter image description here

我们只想把更新按钮放在最后。

最佳答案

我已经添加了这段代码,它对我有用。此代码将在键盘打开时隐藏按钮,并在键盘关闭时再次显示。

 parentView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    Rect r = new Rect();
                    rootView.getWindowVisibleDisplayFrame(r);
                    int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);

                    if (heightDiff > 100) { // if more than 100 pixels, its 
                    //Hide Show Key board
                        view_one.setVisibility(View.GONE);
                        view_two.setVisibility(View.GONE);

                    }else{
                    //ok now we know the keyboard is down...
                        view_one.setVisibility(View.VISIBLE);
                        view_two.setVisibility(View.VISIBLE);

                    }
                }
            });

关于android - 修复键盘打开时父 Activity 中的按钮位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563320/

相关文章:

android - 无法加载 FragmentManager

java - Android 中显示软件键盘时如何显示背景覆盖

java - 从 Android 调用 PHP 函数?

android - 仅通过 Facebook、Twitter、电子邮件和消息共享应用程序

android - 黑暗导航栏图标?

android - 如何使用 Fragment 处理 backPress

java - 在android中的选项卡小部件和 fragment 上创建未读消息计数

java - Android - 需要 Activity 但不想要 Activity ?

java - 计算距离范围

android - 是否有支持注释来表示绑定(bind)资源?