向上滚动软键盘

问题描述:

我有很长的形式,当显示软键盘我看不到底部editTexts向上滚动软键盘

这是我的XML

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" > 

    <TextView 
     android:id="@+id/register_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:text="@string/register" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/register_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_title" 
     android:layout_centerHorizontal="true" 
     android:text="@string/username" /> 

    <EditText 
     android:id="@+id/register_edit_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_username" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_username" 
     android:layout_centerHorizontal="true" 
     android:text="@string/password" /> 

    <EditText 
     android:id="@+id/register_edit_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_password" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_password" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:text="@string/confirm" /> 

    <EditText 
     android:id="@+id/register_edit_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_confirm" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_confirm" 
     android:layout_centerHorizontal="true" 
     android:text="@string/mail" /> 

    <EditText 
     android:id="@+id/register_edit_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_mail" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textEmailAddress" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_mail" 
     android:layout_centerHorizontal="true" 
     android:text="@string/phone" /> 

    <EditText 
     android:id="@+id/register_edit_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_phone" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="phone" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_phone" 
     android:layout_centerHorizontal="true" 
     android:text="@string/last_name" /> 

    <EditText 
     android:id="@+id/register_edit_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_last_name" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_last_name" 
     android:layout_centerHorizontal="true" 
     android:text="@string/first_name" /> 

    <EditText 
     android:id="@+id/register_edit_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_first_name" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_first_name" 
     android:layout_centerHorizontal="true" 
     android:text="@string/register_alert_pwd" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_alert_password" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_alert_password" 
     android:layout_centerHorizontal="true" 
     android:text="@string/register_alert_pwd_confirm" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_alert_password_confirm" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <CheckBox 
     android:id="@+id/register_tou" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_alert_password_confirm" 
     android:layout_centerHorizontal="true" 
     android:text="@string/register_tou" /> 

    <Button 
     android:id="@+id/register_valid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_tou" 
     android:layout_centerHorizontal="true" 
     android:text="@string/confirm" /> 

</RelativeLayout> 

</ScrollView> 

我也在更新我的活动清单

<activity 
     android:name="my name" 
     android:label="@string/title_activity_register" 
     android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" 
     android:windowSoftInputMode="stateVisible|adjustResize" > 
</activity> 

在所有其他人的帖子我看到的解决方案是

android:windowSoftInputMode="stateVisible|adjustResize" 

但它并不在我的情况作品

感谢

编辑

更新到我的最后一个代码

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/register" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fillViewport="true" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/register_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:text="@string/register" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/register_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/username" /> 

    <EditText 
     android:id="@+id/register_edit_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/password" /> 

    <EditText 
     android:id="@+id/register_edit_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:text="@string/confirm" /> 

    <EditText 
     android:id="@+id/register_edit_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/mail" /> 

    <EditText 
     android:id="@+id/register_edit_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textEmailAddress" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/phone" /> 

    <EditText 
     android:id="@+id/register_edit_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="phone" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/last_name" /> 

    <EditText 
     android:id="@+id/register_edit_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/first_name" /> 

    <EditText 
     android:id="@+id/register_edit_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/register_alert_pwd" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/register_alert_pwd_confirm" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:imeOptions="actionSend" 
     android:inputType="textPassword" > 
    </EditText> 

    <CheckBox 
     android:id="@+id/register_tou" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/register_tou" /> 

    <TextView 
     android:id="@+id/register_condition" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:text="@string/register_read_tou" /> 

    <Button 
     android:id="@+id/register_valid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/confirm" /> 
</LinearLayout> 

</ScrollView> 
+0

使用adjustPan代替adjustResize。 – Jitendra

+0

谢谢,但我总是有同样的问题 – Ajouve

+0

如果你有一个长表格,你应该真的在ScrollView中开始。不保证您的用户将拥有屏幕高度以查看全部内容,无论是否使用键盘。如果你这样做,他们就可以在键盘弹出时向下滚动。 – thomas88wp

是啊..全屏模式不调整:) https://*.com/a/7509285/1499064

如果不全屏使用adjustPan一切将工作

+0

谢谢你的作品 – Ajouve

尝试将此添加到您的滚动视图:

android:fillViewport="true" 

我认为在清单以下设置

android:windowSoftInputMode="adjustResize" 

将完成它的工作的权利。

+0

我添加android:fillViewport =“true”到我的滚动视图和更新我的活动在我的清单中只有adjustResize但我一直有同样的问题,我不能滚动到页面的底部被键盘和我隐藏不能滚动键盘上方 – Ajouve

+0

@ant你解决了这个问题吗?即时通讯有相同的问题? – theiOSDude

+0

@ burrows111是不使用全屏 – Ajouve

你可以在你的manifest文件试试这个:

android:windowSoftInputMode="adjustUnspecified" 

我有我的应用程序是在ScrollView,它为我工作。我认为这也可能是windowSoftInputMode的违约价值,但我不是100%确定的。

编辑:这是我的ScrollView的开始,保持不变。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
<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" 
    tools:context=".MainActivity" 
    android:id="@+id/testing"> 

也许尝试把你的LinearLayout高度match_parent为好。

+0

此外,你可能要考虑改变你的'fill_parent'对'match_parent'。 'fill_parent'在API 8中被弃用,并被'match_parent'替代。 – TronicZomB

+0

更新我的表现和变化FILL_PARENT到match_parent,但我也有同样的结果 – Ajouve

+0

@ant我已经更新我的答案。 – TronicZomB