Scrollview在显示android软键盘时向上推

时间:2014-06-06 10:53:13

标签: android adjustpan

我在scrollView中有一个edittext。当edittext获得焦点并显示软键盘时,ScrollView会自动向上推。

我试过了

android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustPan"

<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:background="@drawable/sign_in_or_sign_up_bg" >

<RelativeLayout
    android:id="@+id/headerlayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="@drawable/headerbox_title" >

    <ImageButton
        android:id="@+id/backImgBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="@null"
        android:src="@drawable/backarrow" />
</RelativeLayout>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/headerlayout"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical" >

        <ImageButton
            android:id="@+id/profilePicImgBtn"
            android:layout_width="@dimen/sign_up_profile_pic"
            android:layout_height="@dimen/sign_up_profile_pic"
            android:layout_gravity="center_horizontal"
            android:background="@null"
            android:scaleType="centerCrop"
            android:src="@drawable/attach_image" />

        <EditText
            android:id="@+id/userNameEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Username"
            android:imeOptions="actionNext"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <EditText
            android:id="@+id/emailEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Email"
            android:imeOptions="actionNext"
            android:inputType="textEmailAddress"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <EditText
            android:id="@+id/passwordEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Password"
            android:imeOptions="actionNext"
            android:inputType="textPassword"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <EditText
            android:id="@+id/retypePasswordEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Retype Password"
            android:imeOptions="actionDone"
            android:inputType="textPassword"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <ImageButton
            android:id="@+id/signUpImgBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_large_margin"
            android:background="@null"
            android:src="@drawable/sing_up_main_btn" />
    </LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:7)

oncreate添加

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

<强>更新

尝试将此添加到您的scrollview

android:isScrollContainer="false" 

答案 1 :(得分:1)

在AndroidManifest.xml中,找到正确的活动并在那里添加windowSoftInputMode设置。 adjustPan必须应用于活动。

<activity
    android:name="com.yourpackage.YourActivity"
    android:windowSoftInputMode="adjustPan" >  <<=== THIS LINE ===
</activity>

更新:显然这是因为我开始接受投票,所以这不起作用。也许事情发生了变化。我知道这对我有用。