键盘打开时,在“父活动”中修复按钮位置

时间:2016-01-02 06:36:53

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

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

现在,当我们打开键盘时,活动按钮就会出现在键盘上方。我们如何坚持按钮并向上移动片段部分。

enter image description here

enter image description here

我们只想在最后坚持更新按钮。

3 个答案:

答案 0 :(得分:2)

我添加了此代码,它适用于我。键盘打开时此代码将隐藏按钮,并在关闭时再次显示。

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

                    }
                }
            });

答案 1 :(得分:1)

你必须尝试这个代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".SplashActivity">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true"/>

</RelativeLayout>

答案 2 :(得分:0)

我不知道我是否做得对,但您尝试将此代码放入活动代码 清单文件中

android:windowSoftInputMode="adjustPan"

并将此代码也放在你的按钮标签中:

android:layout_alignParentBottom="true"