I am using scroll view in a fragment but the screen does not scroll up when the keyboard is shown as it should be. Here is the scenario: I have mainActivity which has bottom navigation bar plus a frame layout which works as container for the activity. Here is the code:
<?xml version="1.0" encoding="utf-8"?>
<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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivity"
>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" />
<android.support.design.widget.BottomNavigationView
android:background="@color/clear_white"
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
app:itemIconTint="@color/blue_navbar_icon"
app:itemTextColor="@color/blue_navbar_icon"
app:menu="@menu/navigation" />
</RelativeLayout>
Fragment screen has some input fields plus buttons which wrapped in constrained layout and then constrained layout is wrapped in scrollView, so that it can be scrolled up when the keyboard is active. Here is code of fragment xml file:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<include
android:id="@+id/app_bar_new"
layout="@layout/app_bar_new"
app:layout_constraintBottom_toTopOf="@+id/btn_get_location"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_get_location"
style="@style/btn_style"
android:layout_width="match_parent"
android:layout_height="43dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginStart="11dp"
android:layout_marginTop="12dp"
android:text="@string/get_location_btn_str"
app:layout_constraintBottom_toTopOf="@+id/tv_long"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/app_bar_new" />
<EditText
android:id="@+id/et_name_of_attr"
style="@style/input_field_style"
android:layout_width="0dp"
android:layout_height="47dp"
android:layout_marginBottom="7dp"
android:layout_marginEnd="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:background="@drawable/input_field_design"
android:ems="10"
android:hint="@string/loc_name"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/et_description"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_long" />
<Button
android:id="@+id/btn_save"
style="@style/btn_style"
android:layout_width="90dp"
android:layout_height="42dp"
android:layout_marginBottom="25dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="7dp"
android:padding="10dp"
android:text="@string/btn_save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rg_access" />
<EditText
android:id="@+id/et_cam_img_title"
style="@style/input_field_style"
android:layout_width="0dp"
android:layout_height="47dp"
android:layout_marginBottom="7dp"
android:layout_marginEnd="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:ems="10"
android:hint="@string/loc_img_title"
android:inputType="textMultiLine"
app:layout_constraintBottom_toTopOf="@+id/additional_imgs"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/et_description" />
<EditText
android:id="@+id/et_description"
style="@style/input_field_style"
android:layout_width="0dp"
android:layout_height="47dp"
android:layout_marginBottom="7dp"
android:layout_marginEnd="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:ems="10"
android:hint="@string/loc_desc"
android:inputType="textMultiLine"
app:layout_constraintBottom_toTopOf="@+id/et_cam_img_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/et_name_of_attr" />
<TextView
android:id="@+id/tv_long"
android:layout_width="170dp"
android:layout_height="35dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/long_lat_bg"
android:ems="10"
android:inputType="numberDecimal"
android:padding="5dp"
android:text="@string/loc_long"
app:layout_constraintBottom_toTopOf="@+id/location_name_text"
app:layout_constraintEnd_toStartOf="@+id/tv_lat"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_get_location" />
<TextView
android:id="@+id/tv_lat"
android:layout_width="170dp"
android:layout_height="35dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/long_lat_bg"
android:ems="10"
android:inputType="textPersonName"
android:padding="5dp"
android:text="@string/loc_lat"
app:layout_constraintBottom_toTopOf="@+id/location_name_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv_long"
app:layout_constraintTop_toBottomOf="@+id/btn_get_location" />
<RelativeLayout
android:id="@+id/additional_imgs"
style="@style/input_field_style"
android:layout_width="0dp"
android:layout_height="47dp"
android:layout_marginBottom="7dp"
android:layout_marginEnd="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/relativeLayout2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/et_cam_img_title">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="13dp"
android:layout_weight="1"
android:text="@string/loc_additional_imgs"
android:layout_alignParentLeft="true"
android:layout_marginLeft="13dp" />
<ImageView
android:id="@+id/btn_add_imgs"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_action_add_blue" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/relativeLayout2"
style="@style/input_field_style"
android:layout_width="0dp"
android:layout_height="47dp"
android:layout_marginBottom="7dp"
android:layout_marginEnd="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/rg_access"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/additional_imgs">
<ImageView
android:id="@+id/icon_drop_down_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_drop_down" />
<Spinner
android:id="@+id/spin_classification"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" />
</RelativeLayout>
<TextView
android:textSize="16sp"
android:textColor="@color/blue"
android:id="@+id/tv_desc_access"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginBottom="7dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="8dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:text="@string/loc_acess"
app:layout_constraintBottom_toTopOf="@+id/btn_save"
app:layout_constraintEnd_toStartOf="@+id/rg_access"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/relativeLayout2" />
<RadioGroup
android:id="@+id/rg_access"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="7dp"
android:layout_marginEnd="21dp"
android:layout_marginRight="21dp"
android:layout_marginTop="7dp"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/btn_save"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/relativeLayout2">
<RadioButton
android:id="@+id/rb_car"
android:background="@drawable/rb_car"
android:button="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<RadioButton
android:id="@+id/rb_jeep"
android:background="@drawable/rb_jeep"
android:button="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<RadioButton
android:id="@+id/rb_track"
android:background="@drawable/rb_hike"
android:button="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="10dp"/>
</RadioGroup>
</android.support.constraint.ConstraintLayout>
</ScrollView>
Also here is my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.eapple.tripdatacollection">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main2Activity"
android:windowSoftInputMode="adjustResize"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ViewSavedLocations" />
<activity android:name=".fireBaseUpdates" />
<activity android:name=".SignInActivity" />
<activity android:name=".ForgotPasswordActivity" />
<activity android:name=".UploadDataActivity" />
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main2" />
</application>
</manifest>
But it does not work as it is intended to be. 1) The bottom navigation bar goes up with the keyboard as shown here:Screenshot
I want the bottom navBar to stay at bottom or get disappeared when keyboard is active.
In my case it was enough only to add android:windowSoftInputMode="adjustPan" to my AndroidManifest file as follows:
<activity android:name=".view.MainActivity"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>