문제

I have set the windowSoftInput to adjustResize, but yet the keypad hides the textinput

this is my layout xml

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageView1"
    android:paddingBottom="25dp"
    android:paddingLeft="35dp"
    android:paddingRight="35dp" >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="50dp"
        android:layout_height="45dp"
        android:src="@drawable/user" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:layout_marginTop="0.4dp"
        android:layout_weight="0.41"
        android:background="@drawable/username_textbox"
        android:ems="10"
        android:minWidth="110dp"
        android:paddingLeft="8dp"
        android:singleLine="true" >
    </EditText>
</LinearLayout>
<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linearLayout1"
    android:paddingLeft="35dp"
    android:paddingRight="35dp" >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="50dp"
        android:layout_height="45dp"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/password_icon" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:layout_marginTop="0.4dp"
        android:background="@drawable/username_textbox"
        android:ems="10"
        android:minWidth="110dp"
        android:paddingLeft="8dp"
        android:singleLine="true" >
    </EditText>
</LinearLayout>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linearLayout2"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:background="@drawable/background_signin"
    android:text="Login"
    android:textColor="#ffffff" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="175dp"
    android:layout_height="207dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="85dp"
    android:paddingBottom="20dp"
    android:src="@drawable/app_logo" />

 </RelativeLayout>

default state

hides the edittext

올바른 솔루션이 없습니다

다른 팁

I used like this. It works fine.

private int mSoftKeyboardHeight = 0;



protected void scrollDownOnKeyboardPopUp() {

    mScrollView.getViewTreeObserver().addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {

                @Override
                public void onGlobalLayout() {
                    int keyBoardHeight = 0;
                    if (keyBoardHeight <= 100) {
                        Rect r = new Rect();
                        mScrollView.getWindowVisibleDisplayFrame(r);

                        int screenHeight = mScrollView.getRootView().getHeight();
                        mSoftKeyboardHeight = screenHeight - (r.bottom - r.top);
                        int resourceId = getResources().getIdentifier("status_bar_height",
                                "dimen", "android");
                        if (resourceId > 0) {
                            mSoftKeyboardHeight -= getResources().getDimensionPixelSize(
                                    resourceId);
                        }
                        if (mSoftKeyboardHeight > 100) {
                            keyBoardHeight = mSoftKeyboardHeight;
                        }
                        mScrollView.scrollTo(mScrollView.getScrollY(), mSoftKeyboardHeight
                                + mBottomFunctionPanel.getHeight() + mChatEditPanel.getHeight()
                                + mScrollView.getScrollY());
                    }
                }
            });

}

Then where you need just call it.

scrollDownOnKeyboardPopUp();

Use <activity android:windowSoftInputMode="adjustPan"> instead of adjustResize.

adjustResize, as the name says, resizes the window to make room for the soft keyboard, but in your case there's enough room. adjustPan scrolls the window so that the focused view stays visible.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top