android making layout scrollable when soft keyboard open, but not shifting it upwards

五迷三道 提交于 2019-11-29 09:15:18

Add this input mode in your manifest file.

android:windowSoftInputMode="stateHidden|adjustResize"

I had the same Problem and solved it.

Add this to your class inside the <activity> tags in the AndroidManifest in your Class:

android:windowSoftInputMode="stateHidden|adjustResize">

or:

<activity
        android:name="com.app.app.RegisterScreen"
        android:parentActivityName="com.app.app.LogInScreen"
        android:windowSoftInputMode="stateHidden|adjustPan">

    </activity>

Example:

<activity
        android:name="com.app.yourapp.LogInScreen"
        android:windowSoftInputMode="stateHidden|adjustPan">

</activity>

This works for me.

Make the root of your view

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    ...

</ScrollView>

Refer this to choose the appropriate mode for your screen https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

I hope it will helpful for you Already I have designed such type of layout. I did not edited your layout.

<?xml version="1.0" encoding="utf-8"?>
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res/com.clearfly.groupfone"
 android:id="@+id/registration_view"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@android:color/white"
 android:fillViewport="true"
 android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="@dimen/activity_horizontal_margin"
        android:orientation="vertical"
        android:weightSum="1" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_marginTop="40dp"
            android:layout_weight="0.4"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/ivProfilePicture"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/ic_launcher" >
            </ImageView>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_marginTop="20dp"
            android:layout_weight="0.6"
            android:orientation="vertical"
            android:weightSum="1" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="0.2"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/firstname_edit"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:cursorVisible="true"
                    android:hint="First Name"
                    android:inputType="textCapWords|textPersonName|textNoSuggestions"
                    android:maxLength="50"
                    android:paddingLeft="40dp"
                    android:singleLine="true"
                    android:textColor="@android:color/black"
                     />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="0.2"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/lastname_edit"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:cursorVisible="true"
                    android:hint="Last Name"
                    android:inputType="textCapWords|textPersonName|textNoSuggestions"
                    android:maxLength="50"
                    android:paddingLeft="40dp"
                    android:singleLine="true"
                    android:textColor="@android:color/black"
                     />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="0.2"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/email_edit"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:cursorVisible="true"
                    android:hint="email"
                    android:inputType="textEmailAddress"
                    android:maxLength="255"
                    android:paddingLeft="40dp"
                    android:singleLine="true"
                    android:textColor="@android:color/black"
                     />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="0.2"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/password_edit"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:cursorVisible="true"
                    android:hint="Password"
                    android:inputType="textPassword"
                    android:maxLength="20"
                    android:paddingLeft="40dp"
                    android:singleLine="true"
                    android:textColor="@android:color/black"
                    />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="0.2"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/verify_password_edit"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:cursorVisible="true"
                    android:hint="Verify pwd"
                    android:inputType="textPassword"
                    android:maxLength="20"
                    android:paddingLeft="40dp"
                    android:singleLine="true"
                    android:textColor="@android:color/black"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
  </LinearLayout>
</ScrollView>
Joyal

I tried your code and also I have the same issue Here

Here I make some correction in your code and values were codes as dummy(strings, colors ect)... Code Snippet is:

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

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="vertical"
        android:padding="10dp" >

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

            <EditText
                android:id="@+id/et_username_or_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="HAI"
                android:inputType="textEmailAddress"
                android:singleLine="true" />

            <EditText
                android:id="@+id/et_pswd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="HH"
                android:password="true"
                android:singleLine="true" />

            <Button
                android:id="@+id/btn_sign_in"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#5465"
                android:text="sigin"
                android:textColor="@android:color/white" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:gravity="center_horizontal"
                android:text="ORR"
                android:textColor="@android:color/black" />

            <Button
                android:id="@+id/btn_take_a_peek"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#ff8f43"
                android:text="sfse"
                android:textColor="@android:color/white" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:gravity="center_horizontal"
                android:text="Forgot"
                android:textColor="#ec0974" />
        </LinearLayout>
    </LinearLayout>

    <Button
        android:id="@+id/btn_create_account"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#ffd250"
        android:text="Create Accounr"
        android:textColor="@android:color/white" />
</RelativeLayout>
 </ScrollView>

Also set the below parameter to your activity in you Manifest

android:windowSoftInputMode="adjustPan"

**Edited as in view outer layer is Relative layout inside a scrollview and i managed the Create Account button as parent bottom.

Please try it in a real device.

Try this and give your feedback !! Happy Coding..

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!